[20210527]rman与undo表空间备份.txt
--//UNDO表空间主要用于存储前镜像数据,这些数据在回滚以及恢复过程中可能被用到。
--//一般生产数据库的UNDO表空间可能会变得非常巨大,甚至包括多个数据文件,而备份完整的UNDO数据文件在恢复时一般可能用到的比
--//例很小。所以UNDO的很大一部分备份是多余的,在Oracle11g中,Oracle引入了一个新的特性RMAN UNDO备份优化。
--//在RMAN备份UNDO表空间时,提交事务的UNDO信息将不再备份,这个特性随RMAN强制启用,看来这一特性的好处是不容置疑的。
--//我以前做过这方面的测试,实际上当时想验证如果使用这个备份来恢复后执行select * from t as of scn XXXXX的操作会报ora-01555错误.
--//结果似乎没有再现问题.差不多一个半小时后的备份才会出现ora-01555错误.
--//我看了我当时的测试:http://blog.itpub.net/267265/viewspace-2122341/
SCOTT@book> select current_scn,sysdate from v$database ;
CURRENT_SCN SYSDATE
------------ -------------------
13244616644 2016-07-21 09:50:04
SCOTT@book> update t set name='1234567890' ;
100 rows updated.
SCOTT@book> commit ;
Commit complete.
--//我已经提交。
....
$ strings /home/oracle/backup/UNDOTBS1_6crb8fk0_1_1 | grep abcdefghijklmnz|wc
0 0 0
--//这样备份相关的信息已经不存在。无法找到abcdefghijklmnz字符串。
$ ls -l UNDOTBS1*
-rw-r----- 1 oracle oinstall 6127616 2016-07-21 10:32:28 UNDOTBS1_6arb8c9r_1_1
-rw-r----- 1 oracle oinstall 6397952 2016-07-21 11:06:24 UNDOTBS1_6brb8e9g_1_1
-rw-r----- 1 oracle oinstall 2940928 2016-07-21 11:29:04 UNDOTBS1_6crb8fk0_1_1
--//可以发现备份UNDOTBS1_6crb8fk0_1_1比原来小一些。
--//注:第一次备份集我已经删除了。
$ strings /home/oracle/backup/UNDOTBS1_6brb8e9g_1_1 | grep abcdefghijklmnz|wc
100 100 1865
--//而11:06分的备份还存在。
--//有朋友介绍,Undo optimization 改变从all undo not needed到undo not in use older than 1 hour,很明显我的测试还是存在一些
--//差异,我当时的测试11:06备份还可以找到对应的字符串abcdefghijklmnz,直到11:29分的备份才没有对应的字符串abcdefghijklmnz.
--//也许还有什么别的因素控制这个改变.
--//找到一个链接:
http://db.geeksinsight.com/2013/03/08/undo-backup-optimization-in-11g/
Bug 6399468: UNDO OPTIMIZATION
====> Undo optimization was changed from 'all undo not needed' to 'undo not in use older than 1 hour'
In unpublished bug , the Undo optimization was changed from 'all undo not needed' to 'undo not in use older than 1
hour'.
--//不想花时间做这方面的测试,仅仅做一个记录.
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/267265/viewspace-2775023/ ,如需转载,请注明出处,否则将追究法律责任。