Oracle 撤销表空间 undo

    xiaoxiao2022-07-04  160

    文章目录

    1.作用2.属性3.undo数据4.undo和redo5.undo参数6.参数属性7.创建undo表空间8.切换undo

    1.作用

    一个事物只能分配一个undo段 一个undo段可以同时服务多个事务

    2.属性

    事务的属性 ACID:

    原子性(Atomicity)一个事务的所有部分必须都完成,或都不完成。一致性(Consistency)查询的结果必须与数据库在查询开始时的状态一致。隔离性(Isolation)除了做出表更的会话,其他会话都无法看到未提交的数据。持久性(Durability)事务一旦完成,不可丢失

    3.undo数据

    • Undo数据是: • 原始的、修改之前的数据副本 • 是针对更改数据的每个事务处理所捕获的 • 至少保留到事务结束 • 用于支持 - rollback操作 - 读取一致性数据 - 闪回查询、闪回事务处理和闪回表 - 从失败的事务中进行recove

    4.undo和redo

    5.undo参数

    SQL> show parameter undo NAME TYPE VALUE --------------------------- ------ ----------- ----------- undo_management string AUTO undo_retention integer 900 undo_tablespace string UNDOTBS1

    • undo_management - manaual:手工管理重做 - auto :自动管理重做段的创建、分配、调整。这是Oracle9I之前的唯一方法 • undo_retention 指定保留期单位秒,保证在这个期间 commit 的 undo 数据不会被覆盖 • undo_tablespace 当前使用的undo表空间

    undo数据状态和参数 回滚段里数据三种状态:

    ACTIVE未提交的数据UNEXPIRED已提交,未超过undo_retention保留时间EXPIRED已提交,超过undo_retention保留时间

    仅适用于undo表空间的参数

    -undo_retention

    6.参数属性

    retention guarantee(保障保留时间)属性 通常情况下,unexpired 数据并不绝对保证在 retention 期内不会覆 盖,必要时可考虑设置 在保留期强制不覆盖的 guarantee 属性,同时应 该使 undo autoextend on

    SQL> select tablespace_name,status,contents,retention from dba_tablespaces;

    缺省配置下 undo retention 是 noguarantee (guarantee 属性慎重用) guarantee 属性可以修改。

    SQL > alter tablespace undotbs2 retention guarantee;

    保证 unexpired 状态 undo 数据 在 retention 期间不被覆盖

    SQL> select tablespace_name,status,contents,retention from dba_tablespaces;

    取消 undo 表空间 guarantee 属性

    SQL> alter tablespace undotbs2 retention noguarantee;

    查看redo表空间SQL语句

    SQL> show parameter undotablespace

    7.创建undo表空间

    可以创建多个表空间,但只有一个被正在使用 使用中的表空间,不能offline(脱机)和drop(停止)

    创建undo表空间SQL语句

    create undo tablespace undotbs2 datafile '(文件名称和目录)' size 50M autoextend on(自动扩展空间格式);

    8.切换undo

    undo表空间很难缩小,可以替换

    SQL> alter system set undo_tablespace=undotbs2; SQL> show parameter undo_tablespace SQL> select * from v$rollname; 动态参数,修改立即生效
    最新回复(0)