如果自己搞不定可以找诗檀软件专业ORACLE数据库修复团队成员帮您恢复!
诗檀软件专业数据库修复团队
服务热线 : 13764045638 QQ号:47079569 邮箱:[email protected]
问题描述
====================
RMAN在查找一个用于恢复数据文件但已脱机的归档日志。在恢复会话收到以下错误。
RMAN-06053: unable to perform media recovery because of missing log
RMAN-06025: no backup of log thread 1 seq 649 scn 1110600 found to restore
原因
=======
RMAN恢复,查看数据文件头,获取恢复的起点。所以即使数据文件不再属于控制文件(OFFLINE DROP),RMAN 仍知道它并仍反映主/生产数据库的状态。
解决方法
===========
一旦RMAN 还原的文件在sqlplus会话成功执行手动恢复。
SQL> recover database until cancel
模拟问题
=====================
++ 备份所有数据文件。标记此时的日志序列号:635
++ 进行一些事务Do some transactions. 标记此时的日志序列号:650.
++ 对除数据文件6以外的所有数据文件进行RMAN 备份
run{
allocate channel c1 type disk;
backup datafile 1,2,3,4,5;
release channel c1;
}
++ 进行一些事务Do some transaction将日志序列号提高为669
++ 在运行下一个命令之前,删除所有磁盘副本和归档日志序列649的副本。
++ 在这个阶段,执行不完全恢复到日志序列666;
使用以下命令:
RMAN> run {
set until logseq 666 thread 1;
allocate channel c1 type disk;
restore database;
recover database;
}
++ 运行RMAN-command,会还原数据文件到以下状态:
SQL> select hxfil,fhsta,fhscn,fhrba_seq from x$kcvfh;
HXFIL FHSTA FHSCN FHRBA_SEQ
—– ———- —————- ———-
1 0 1110781 650
2 0 1110780 650
3 0 1110779 650
4 0 1110780 650
5 0 1110779 650
6 0 1109021 635
====
RMAN使用fhrba_seq 650来还原所有数据文件除了文件 6,因为它不被包括在最后的备份中。
++ 此恢复需要从635到666的日志序列号。
恢复失败显示以下错误,因为归档日志649 不在磁盘或备份中
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-00579: the following error occurred at 03/05/2004 12:16:23
RMAN-03002: failure during compilation of command
RMAN-03013: command type: recover
RMAN-03002: failure during compilation of command
RMAN-03013: command type: recover(4)
RMAN-06053: unable to perform media recovery because of missing log
RMAN-06025: no backup of log thread 1 seq 649 scn 1110600 found to restore
++ 脱机drop数据文件使恢复从日志序列650开始
SQL> alter database datafile 6 offline drop;
++ 但即使数据文件6被脱机drop,恢复再次失败,显示相同错误。
RMAN> run {
set until logseq 666 thread 1;
allocate channel c1 type disk;
recover database;
}
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-00579: the following error occurred at 03/05/2004 12:16:23
RMAN-03002: failure during compilation of command
RMAN-03013: command type: recover
RMAN-03002: failure during compilation of command
RMAN-03013: command type: recover(4)
RMAN-06053: unable to perform media recovery because of missing log
RMAN-06025: no backup of log thread 1 seq 649 scn 1110600 found to restore
++ SQL> select status from v$datafile where file#=6;
STATUS
——-
OFFLINE
++ 手动重新同步目录catalog 和现有的rman会话,再次尝试仍失败。
++ 在sqlplus会话中尝试手动恢复。
++ SQL> recover database until cancel
ORA-00279: change 1110779 generated at 03/05/2004 10:48:03 needed for thread 1
ORA-00289: suggestion : D:\TEMP\TEMPARC00650.001
ORA-00280: change 1110779 for thread 1 is in sequence #650
仅从序列650起请求归档日志,恢复成功完成。
Leave a Reply