UNDO
数据操纵
数据操纵语言(DML)由以下SQL语句组成:
INSERT,DELETE,UPDATE,MERGE
DML始终作为事务处理的一部分执行,它可以:
使用Rollback命令执行回退
使用Commit命令执行提交
还原数据
还原数据是:
原始的、修改之前的数据副本
是针对更改数据的每个事物处理所捕获的
至少保留到事物处理结束
用于支持:
-回退操作
-读取一致性查询
-闪回查询、闪回事物处理和闪回表
-从失败的事物处理中进行恢复
每个事物处理只分配给一个还原段
一个还原段可以同时服务多个事物处理
存储还原信息
还原信息存储在还原段中,还原段又存储在还原表空间中。
还原表空间:
仅用于还原段
包含特殊的恢复注意事项
只能与单个实例相关联
要求在任意指定时间,一个给定的实例只能有一个表空间是当前可写还原表空间
管理还原
自动还原管理:
在专用还原表空间中对还原数据和空间进行完全自动的管理
用于所有会话
在AUTOEXTEND表空间中进行自优化,以满足长时间运行的查询的需求
在固定大小的表空间进行自优化,以实现最佳的保留时间
用来支持闪回操作的DBA任务:
配置还原保留时间
将还原表空间更改为固定大小
避免空间错误和‘快照太旧’错误
查看UNDO信息
SQL> show parameter undo
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
undo_management string AUTO
undo_retention integer 900
undo_tablespace string UNDOTBS1
配置还原保留时间
SQL> alter system set undo_retention=5400;
System altered.
5400秒
设置undo表空间保留时间内不可覆写
SQL> alter tablespace UNDOTBS1 retention guarantee;
Tablespace altered.
设置undo表空间保留时间内可覆写
SQL> alter tablespace UNDOTBS1 retention noguarantee;
Tablespace altered.
实验:删去原有的UNDO表空间数据文件,指向新的UNDO表空间数据文件
SYS@VDEDU>create undo tablespace undotbs2 datafile '/u01/app/oracle/oradata/VDEDU/undotbs02.dbf' size 100m autoextend on;
Tablespace created.
SYS@VDEDU>show parameter undo_tablespace
NAME TYPE
------------------------------------ --------------------------------
VALUE
------------------------------
undo_tablespace string
UNDOTBS1
SYS@VDEDU>alter system set undo_tablespace=undotbs2;
System altered.
SYS@VDEDU>show parameter undo_tablespace;
NAME TYPE
------------------------------------ --------------------------------
VALUE
------------------------------
undo_tablespace string
UNDOTBS2
SYS@VDEDU>drop tablespace undotbs1 including contents and datafiles;
Tablespace dropped.