rac的dp备份时候报错RMAN-20242

今天收到一个rac省的dp报错记录:

看到这个log,一开始的感觉是手工删除arch过了,上数据库主机做了crosscheck,发现在db01上关于db02的arch都是expired的状态。通过bdf检查发现在db01上,只能看到archlog1的目录,而在db02上,能看到archlog1和archlog2。感觉是共享的文件系统出了问题,把主机工程师叫上来一看,nfs早就不用了,哦,那为何之前的备份都没问题,只是昨天的备份报错了?

检查了备份的脚本,发现是针对2个主机备份的,确实没用nfs,针对db01的备份脚本为:

针对db02的备份脚本为:

在这里,通过检查发现这样一个用法:

这个like,其实是有缺陷的:

当我们如果存在like的归档日志,那么备份是没有问题的;但是如果不存在归档日志,那么rman备份的时候就会报错20242了,我们看下面的这个小实验:

了解了故障原因,解决的方法就比较容易了。在这里介绍2种方式:
1.在备份脚本中添加sql ‘alter system archivelog current’;使得在备份前手工的切出一个归档日志,不会在上次备份之后,一次归档都还没有切,找不到like关键字需要的归档。
2.使用skip inaccessible。

以下是2种解决方式的dp的log,均备份成功了:

相关文章

一条评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注

This site uses Akismet to reduce spam. Learn how your comment data is processed.