通常,我们备份完数据库后需要及时校验备份的有效性和完整性。本人亲自测试的只有异机恢复数据库,二是源服务器上校验,此方法,我不敢使用,主要是怕S呀,一般都是在测试库里校验的。
异机恢复数据库这种方法工程量较大,使用源服务器校验方法则相对简单,几条命令语句就可以轻松搞定。
下面,我们一起来学习一下如何在测试库,测试库,测试库上校验备份的有效性和完整性。
1、按步骤进行入RMAN界面,使用RESTORE PREVIEW命令用来查看还原需要使用哪个备份集来执行特定的恢复。
2、使用 VALIDATE 和 CHECK LOGICAL 参数的 RESTORE命令检查备份集,以确认数据库是可恢复的,该命令只能检查最新的备份集。
使用 CHECK LOGICAL 参数可以更完全的检查最新的全备或0级备份集。
如果要检查任意的备份集,就需要用 VALIDATE BACKUPSET 命令。这里,我们首先必须确认要检查的备份集的键(BS KEY)
RMAN>LIST BACKUPSET;
由于备份集比较多,这里我们只截一部分。接着,我们执行如下检查语句:
RMAN>VALIDATE BACKUPSET 231;
或RMAN>VALIDATE BACKUPSET 231 CHECK LOGICAL;
如果该备份已不存在,则会
备份存在,则会
3、校验归档日志文件的有效性。
RMAN>RESTORE ARCHIVELOG ALL VALIDATE;
因为我现在演练的是异机备份后的数据库,删除了之前的备份归档日志,会出现图上的报错,可以使用以下命令来校验。
RMAN>RESTORE ARCHIVELOG SEQUENCE ***** VALIDATE;
*代表的是归档日志文件的编号,即下图的Seq值。
下面我们来看看当前的归档日志文件情况
我们先来检验之前的归档日志文件,是否可行?
再看看当前的归档日志文件,情况如何?
至于为什么会出现这种情况,网上找到的最接近的答案:又到考验英文水平的时候了。
Bug 5648115 USING LOGSEQ CLAUSE, RMAN CAN NOT BACKUP ARCHIVE LOGS FOR PREVIOUS INCARNATIONS:
This problem is NOT confined to SAP databases.
Anyone trying to backup logs using SEQUENCE will find they cannot backup logs from an earlier incarnation where the logs are still avaliable on disk. Nor can the logs be listed using SEQUENCE.
Apply the fix for Bug 5648115 when it becomes available.
Bug 5648115 is fixed in 11GR2.
说白点,就是前任的我不认。
4、最后,我们需要校验控制文件。
RMAN>RESTORE CONTROLFILE VALIDATE;
至此,我们的校验工作就结束了。
如果小伙伴们想做异机恢复数据库实验,又想要个简单方便的方法,这个办法是有嘀。本人做了几个bat批处理文件及注册表文件,轻轻点5下,即可完成99%的工作量,我们明天再来探讨说一下。
领取专属 10元无门槛券
私享最新 技术干货