oracle rman备份失败与crosscheck

本文详细介绍了Oracle数据库中归档日志文件异常变动导致备份失败的问题,以及如何通过执行特定命令来恢复正常备份。同时,文章还提供了解决DB2数据库类似问题的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  当oracle的归档日志文件delete掉或异常变动后,在controlfile文件中仍然记录着这些archivelog的信息,在我们手工清除或改动archive目录下的文件后,这些记录并没有被我们从controlfile中清除掉,也就是说数据库并不知道这些文件已经不存在了,在这个时候通常会造成rman备份的失败,因为Rman备份会检测到日志缺失,从而无法进一步继续执行下去。

这时为恢复RMAN的正常备份,我们通常会在数据库里手工执行两条常用的命令。
crosscheck archivelog all;的作用就是检查控制文件和实际物理文件的差别。
delete expired archivelog all;就是同步控制文件的信息和实际物理文件的信息。
如果单独执行crosscheck而没有执行delete那么备份还是失败的,原因是那些控制文件的信息和实际的信息还是不同。一般我们可以试着先CROSSCHECK一下,如果不行执行delete expired archivelog all后再执行一下crosscheck archivelog all

如果NBU备份是调用的RMAN脚本,我们也需要进行同样的处理以恢复NBU的备份。

 DB2数据库 解决这个问题的办法:

   1. 某个时间点之前的日志全部被手工删除,结果发现NBU的归档日志无法继续进行。而归档日志也无法手工进行。

   2. 使用 如下命令解决:

     db2 connect to test

    db2 prune logfile prior to "first  active logfile"

    执行此命令后,在此日志文件之前的日志文件全被删除了。此时再执行一次全备份,系统恢复正常。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值