目录
一、目标
1、理解oracle11g的UNDO表空间的作用和工作机制
2、掌握oracle11g的UNDO表空间的相关操作
3、理解oracle11g中UNDO表空间的新特性:RMAN UNDO备份优化
二、Undo管理的方式改变
1、对于DML语句来说,只要修改了数据块,Oracle数据库就会将修改前的数据保留下来,保存在undo segment里,而undo segment则保存在undo表空间里。
2、对于UNDO的管理,有手工Undo管理和自动Undo管理,9i前只能使用手工Undo管理,11g默认使用自动Undo管理。
三、oracle11g的UNDO表空间
UNDO的作用:提供一致性读、回滚事务、实例恢复。
UNDO表空间:undo segment则保存在undo表空间里,数据库中可以同时存在多个undo表空间,但是在一个时间点上,数据库只能使用一个undo表空间。如果我们将undo_tablespace参数设置为 另外一个undo表空间的名字,则这叫做undo表空间的切换。
四、oracle11g的UNDO相关的重要参数
SQL>show parameter undo_retention
undo_retention:该参数以秒为单位,表示当事务提交或回滚以后,该事务所使用的undo块里的数据需要保留多长时间;当保留的时间超过undo_retention所指定的时间以后,该undo块才能够被其他事务覆盖。
rentention garentee:从Oracle 10g开始,我们可以通过为undo表空间设置retention guarantee属性,可以达到的效果是:当undo数据文件不能自动扩展,并且undo块不够用时,直接报错,而不是覆盖那些 inactive而又没有expired的undo块。
五、oracle11g的UNDO表空间的操作1
1、查看系统中有哪些UNDO表空间:
select tablespace_name, CONTENTS from dba_tablespaces;
2、查看UNDO表空间的管理方式:手工管理和自动管理
show parameter undo_management;
3、增加一个回滚表空间Undo Tablespace,叫undotbs2,用来存放回滚段中的数据,记录数据改变的旧值。
create undo tablespace undotbs2 datafile 'D:\app\Administrator\oradata\orcl\undotbs201.dbf' size 10m;
六、oracle11g的UNDO表空间的操作2:
1、给回滚表空间 undotbs2 增加一个数据文件:
alter tablespace undotbs2 add datafile
‘D:\app\Administrator\oradata\orcl\undotbs202.dbf’ size 10M autoextend on;
2、查看数据文件以及其所属的表空间:
select * from dba_data_files;
3、查看系统的默认的UNDO表空间:
show parameter undo_tablespace
4、切换UNDO表空间:
alter system set undo_tablespace = UNDOTBS2;
七、oracle11g的UNDO表空间的操作3:
1、启用rentention garentee:
alter tablespace undotbs1 retention guarantee;
2、查看了是否启用了rentention garentee :
select tablespace_name, retention from dba_tablespaces;
3、取消rentention garentee:
alter tablespace undotbs1 retention noguarantee;
八、oracle11g的UNDO表空间的操作4
重要视图:v$undostat每十分钟更新一次,记录了UNDO 表空间的使用情况。
select to_char(begin_time,'yyyymmdd hh24:mi:ss'),to_char(end_time,'yyyymmdd hh24:mi:ss'),undoblks,txncount from v$undostat;
通过上述查看,可以看到undoblks块中,使用次数最多的时间点,也就是DML操作时间点最多的时候,我们可以分析此时间点的一些问题
九、oracle11g的UNDO表空间的新特性
在Oracle Database 11g中,Oracle引入了一个新的特性RMAN UNDO备份优化。在RMAN备份UNDO表空间时,提交事务的UNDO信息将不备份,这个特性随RMAN强制启用。
在一个繁忙的生产环境中,UNDO表空间可能占用几十GB的空间,全部备份显然并不合理,这一特性是许多DBA期待已久的,现在Oracle 11g解决了这个问题。
文章评论