今天客户误执行了大量DELETE操作,在为客户的Oracle RAC Database 11.2.0.3 for Linux做不完全恢复,执行recover操作的时候报如下的错误:
unable to find archived log
archived log thread=2 sequence=0
Oracle Error:
ORA-01547: warning: RECOVER succeeded but OPEN RESETLOGS would get error below
ORA-01152: file 5 was not restored from a sufficiently old backup
ORA-01110: data file 5: '/oradata/datafile1/ccense/undotbs02.dbf'
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of recover command at 06/20/2012 17:50:56
RMAN-06054: media recovery requesting unknown archived log for thread 2 with sequence 0 and starting SCN of 8429237
下面是对ORA-1547错误的描述:
Oracle8
~~~~~~~
Error: ORA-1547
Text: "warning: RECOVER succeeded but OPEN RESETLOGS would get error below"
-------------------------------------------------------------------------------
Cause: Media recovery with one of the incomplete recovery options ended
without error. However, if the ALTER DATABASE OPEN RESETLOGS command
were attempted now, it would fail with the specified error.
The most likely cause of this error is forgetting to restore one or
more datafiles from a sufficiently old backup before executing the
incomplete recovery.
Action: Rerun the incomplete media recovery using different datafile
backups, a different control file, or different stop criteria.
前面的恢复操作是在控制文件为丢失的情况下执行的。在确保没有归档日志丢失的情况下,还原一个老的控制文件,使用老的控制文件执行不完全恢复即可正常的执行。
从旧控制文件执行不完全恢复可以参考文章:http://space.itpub.net/23135684/viewspace-722050(RMAN工具)和http://space.itpub.net/23135684/viewspace-722450(sqlplus工具)
总结:执行恢复操作前一定要做好备份,即使数据库存在问题也应该想办法做好备份,这样可以确保在恢复失败的情况下能够还原到之前的状态,这就是所谓的操作回退。做重要的操作前都应该较全面的思考整个操作过程和操作失败后的回退,这个非常重要!
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/23135684/viewspace-733809/
,如需转载,请注明出处,否则将追究法律责任。