RMAN-06054: media recovery requesting unknown archived log for thread 1 with sequence 2244 and starting SCN of 11667205083712

Oracle idb 2111℃ 0评论

RMAN执行0级备份恢复演练时,遇到【RMAN-06054: media recovery requesting unknown archived log for thread 1 with sequence 2244 and starting SCN of 11667205083712】的错误。

时间:2017年12月11日星期一

数据库类型:RAC双节点Oracle集群

版本:11.2.0.4

问题

报错脚本:

执行过程:

恢复过程中,遇到这个错误,可能是指定的恢复sequence延后导致,因为错误中提示找不到thread 1的sequence 2244。

查看RMAN备份数据文件的开始和结束时间,如下,S_TIME表示开始备份时间,E_TIME表示备份结束时间。

将备份的开始和结束时间分别代入到RMAN的list语句中查看本次0级备份(也是全备)恢复最少需要用到归档文件sequence。通过查询发现只需要thread 1的2243和thread 2的2535。

通过视图 v$archived_log查看归档文件的信息,发现sequence 2244的归档是在2017/12/10 1:16:05这个时间点之后生成的。因而RMAN需要读取的sequence 2244是在RMAN 的0级(全备)备份结束之后生成的,个人觉得之所以会需要这个sequence的归档文件,可能是我指定的恢复sequence不对。

解决方法

查看RMAN 0级备份和归档备份脚本,发现归档是在RMAN备份数据文件之后,就紧接着备份的。而且日志显示备份正常完成。既然备份正常完成,归档也在RMAN由于RMAN的全备是正常的。尝试手动执行【 alter database open resetlogs;】发现可以正常打开。

分析与总结

后来,在设置【export NLS_DATE_FORMAT=’YYYY-MM-DD HH24:MI:SS’】,并且使用【list backup of archivelog all】查看归档文件备份信息,从中看出thread 2的sequence 2535时间比thread 1的sequence 2243要晚,因此可能导致本次RMAN自动恢复到一致性是报错。于是我才有thread 1来作为RMAN备份恢复的基准,果然成功了。

下面是截取list部分信息:

成功恢复的脚本(注意,sequence是上面看到的基础上面加1,同时注意如果是RAC数据库,需要加上thread。例如以thread 1的2243为例,指定sequence为2244。):

转载请注明:猫头鹰工作室 » RMAN-06054: media recovery requesting unknown archived log for thread 1 with sequence 2244 and starting SCN of 11667205083712

喜欢 (1)or分享 (0)
Avatar
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址