在9i时代,如果在控制文件或者catalog数据库中的备份信息被覆盖或者清除,那么即使所有的备份文件都在,rman也无法简单的利用这些文件来做恢复了,必须得用些特别的方法才能办到,比如以前很多牛人写的使用dbms_backup_restore包从备份片中释放出数据文件,然后再使用手工方式做恢复。
但是实际上,oracle完全可以将恢复时需要的一些信息保存在备份文件的文件头中,如果控制文件或者catalog数据库中的信息丢失,再扫描一遍文件头,取出这些信息就可以了。
转自:http://www.ningoo.net/html/2007/oracle10g_rman_catalog_command.html
[@more@]Update:9i也有catalog命令,但是不能识别备份片,谢谢waityou81的指出。但是由于不支持备份片和整个目录扫描,使得9i的这个命令可能使用的频率大大降低。
要说10g出来也好几年了,10g rman的这个新命令应该有不少人已经知道了。我以为10g rman比起9i的最大改进,就是这个命令的增强。不过最近发现还是很多人不知道,甚至把它跟catalog database混为一谈。
做为一个Oracle DBA,对于官方文档应该是要相当熟悉才行,至少手头上应该放一份你产品库版本一致的文档备份,也不用书到用时方恨少,遇上网络如龟速,自己就要变成热锅上的蚂蚁了。就算没有时间和精力通读所有文档,至少得清楚文档的结构,知道哪方面的问题去找哪几个文档,对吧。比如rman的命令语法不清楚了,就要去翻翻《Backup and Recovery Reference》,因为rman属于备份恢复工具,而名字里带reference的,基本上都是些命令语法的详细参考。
而对于一个新版本,浏览一遍每篇文章前面的新特性部分,也是快速掌握新版本的一个捷径,当然,这是建立在已经对老版本有一定认识的基础上的。很多人喜欢问学习oracle看哪些书最好,当然有很多经典的书籍可以帮助你理解oracle,但是要熟练应对工作中的需要,官方文档还是必不可少的。
在9i时代,如果在控制文件或者catalog数据库中的备份信息被覆盖或者清除,那么即使所有的备份文件都在,rman也无法简单的利用这些文件来做恢复了,必须得用些特别的方法才能办到,比如以前很多牛人写的使用dbms_backup_restore包从备份片中释放出数据文件,然后再使用手工方式做恢复。
但是实际上,oracle完全可以将恢复时需要的一些信息保存在备份文件的文件头中,如果控制文件或者catalog数据库中的信息丢失,再扫描一遍文件头,取出这些信息就可以了。10g中就是这么实现的,扫描这些文件头的工作就是由这个新的catalog命令来实现的。注意这是10g rman的一个命令,虽然和以前的catalog database的名字长得一样,可不是同一个东西。
catalog命令可以用来扫描备份片,文件拷贝(datafile or controlfile copy),也可以用来扫描归档日志,所以,只要你的备份还在,归档还在,即使catalog database崩溃,控制文件重建,照样可以用这些备份来做恢复。
扫描备份片
扫描归档日志
扫描数据文件拷贝,并且将其做为增量备份的level 0
扫描控制文件拷贝
扫描整个目录,如果备份片或者归档日志文件太多,可以放到一个目录中,一次性扫描就行
扫描闪回恢复区
有了catalog命令,完全可以抛弃catalog database了。只是注意将备份的log和备份文件一起保存下来,不然就不知道哪些文件属于哪个备份集,恢复的时候就要多浪费些时间啦。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/668365/viewspace-1020378/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/668365/viewspace-1020378/