使用rman可以对备份集进行管理,在rman配置中存储的有默认的管理备份集的信息
Rman target /
Show all
Rman的配置参数为:
Configure retention policy to redundancy 1; #default
Configure controlfile autobackup off;
…
关于rman的备份集得保留策略有基于redundancy冗余和基于reocovery window恢复窗口的保留策略。
此时用rman做两个全备份集
Rman>run{
Allocate channel d1 type disk;
Backup database target=full01_test0822;
}
Rman>rman{
Allocate channel d2 type disk;
Backup database target=full02_test0822;
}
此时完成了一个库的两个备份集,如果在mran保留策略中开启了控制文件的自动备份,则全库备份还会促发一次控制文件的自动备份,
Rman>configure controlfile autibackup on;
配置已经改变
。。
此时目标数据库的控制文件的自动备份功能已经开启。
Rman>configure retention policy to redundancy 2;
把rman的冗余备份的保留备份集策略改为2,此时oracle会保留最新的两个备份集用于以后的更新,其余的备份集当做过期备份
过期的备份rman不会删除只会标记为obsolete废弃状态,但是过期的备份不会自动删除,其状态依旧是available,可以利用report obsolete查看
Rman>report obsolete
Report列出过期的备份集,然后用delete obsolete删除过期备份
Rman>delete obsolete
也可以用delete nopromt obsolete,此时rman不会问是否需要删除废弃备份集而直接删除。
当我们在os上删除备份集后,rman目录中依然存在,此时可以使用crosscheck可以找出这这些文件,rman会自动去os上检测rman的备份集是否存在,如果没有oracle就会在rman目录中将这些备份集标记为expired过期,然后使用delete expired backup删除过期备份
Rman>crosscheck backup
此时在rman目录中把os上缺少的数据文件的备份集标记为expired过期
Rman>delete expired backup
在rman目录中删除过期备份
对归档日志也可以先crosscheck然后delete。
首先查找os上缺少文件的归档日志信息
Rman>crosscheck archivelog all
Rman>delete expired archivelog all
Nocatalog模式下,rman会把备份信息自动记录在控制文件中,oracle9I后可以设置控制文件自动备份,这样oracle数据库在有增加删除tablespace,rman的备份等都会记录在控制文件中,然后又会触发控制文件的自动备份。
Rman>configure controlfile autobackup on
设置控制文件自动备份
Rman>backup database
此时全库的备份先发生,然后把全库备份的信息存储在控制文件中,然后控制文件又会自动备份,记住备份发生在控制文件自动备份之前。
Sql >alter session set events ‘immeidiate trace name contolf level 8;
前面blog中记载了几个scn的记载,当中我们转储控制文件来查看具体的控制文件的信息,有数据文件的检查点scn,stop scn 日志文件low scn和next scn,数据文件和日志文件 控制文件的scn的不一致将导致数据库无法open。
可以通过restore修复重建控制文件和spfile文件。
Rman>restore spfile to ‘d:spfile.ora’ from autobackup;
Rman>restore controlfile to ‘d:control.ctl’ from autobackup;
[@more@]来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/25362835/viewspace-1054288/ ,如需转载,请注明出处,否则将追究法律责任。