Oracle 11g没有备份文件参数文件在异机通过RMAN备份恢复找回被误删的数据(一)

2015-04-07 14:09:32 · 作者: · 浏览: 73

背景:


同事误删除线上数据,所以需要从备份中找回数据恢复。真实屋漏偏逢连夜雨、船迟又遇打头风,前两天备份的磁盘坏块,现在只有rman全备的.bak文件,没有控制文件和参数文件,所以现在需要考虑的是如何根据bak文件在备份数据库上恢复数据,从中找出被误删的数据。


1 通过catalog start with’’的方式来恢复


1.1手动创建控制文件


CREATE CONTROLFILE REUSE set DATABASE"powerdes" RESETLOGS ARCHIVELOG


? MAXLOGFILES 16


? MAXLOGMEMBERS 3


? MAXDATAFILES 100


? MAXINSTANCES 8


? MAXLOGHISTORY 454


DATAFILE


'/home/oradata/powerdes/system01.dbf',


'/home/oradata/powerdes/sysaux01.dbf',


'/home/oradata/powerdes/undotbs01.dbf',


'/home/oradata/powerdes/users01.dbf',


'/home/oradata/powerdes/powerdesk01.dbf',


'/home/oradata/powerdes/plas01.dbf',


'/home/oradata/powerdes/pl01.dbf',


'/home/oradata/powerdes/help01.dbf',


'/home/oradata/powerdes/adobelc01.dbf',


'/home/oradata/powerdes/sms01.dbf',


'/home/oradata/powerdes/plcrm01.dbf'


LOGFILE


GROUP 1('/home/oradata/powerdes/redo03.log') SIZE 10M,


GROUP 2('/home/oradata/powerdes/redo02.log') SIZE 10M,


GROUP 3('/home/oradata/powerdes/redo01.log')? SIZE10M,


GROUP 4('/home/oradata/powerdes/redo_dg_01.log') SIZE 10M,


GROUP 5('/home/oradata/powerdes/redo_dg_02.log') SIZE 10M,


GROUP 6('/home/oradata/powerdes/redo_dg_03.log') SIZE 10M


CHARACTER SET ZHS16GBK;


?


1.2,设置catalog start with 路径


searching for all files that match the pattern/tmp/2015-03-30/


?


List of Files Unknown to the Database


=====================================


File Name:/tmp/2015-03-30/full_POWERDES_20150330_3395.bak


File Name: /tmp/2015-03-30/rman_backup.log


File Name:/tmp/2015-03-30/arch_POWERDES_20150330_3396.bak


File Name:/tmp/2015-03-30/arch_POWERDES_20150330_3394.bak


?


Do you really want to catalog the abovefiles (enter YES or NO)? yes


cataloging files...


cataloging done


?


List of Cataloged Files


=======================


File Name:/tmp/2015-03-30/full_POWERDES_20150330_3395.bak


File Name:/tmp/2015-03-30/arch_POWERDES_20150330_3396.bak


File Name:/tmp/2015-03-30/arch_POWERDES_20150330_3394.bak


List of Files Which Where Not Cataloged


=======================================


File Name: /tmp/2015-03-30/rman_backup.log


?RMAN-07517: Reason: The file header is corrupted


?


?


1.3 开始restore database恢复数据库


RMAN> restore database;


?


Starting restore at 01-APR-15


using channel ORA_DISK_1


?


RMAN-00571:===========================================================


RMAN-00569: =============== ERROR MESSAGESTACK FOLLOWS ===============


RMAN-00571:===========================================================


RMAN-03002: failure of restore command at04/01/2015 03:39:01


RMAN-06026: some targets not found -aborting restore


RMAN-06023: no backup or copy of datafile12 found to restore


RMAN-06023: no backup or copy of datafile11 found to restore


RMAN-06023: no backup or copy of datafile10 found to restore


RMAN-06023: no backup or copy of datafile 9found to restore


RMAN-06023: no backup or copy of datafile 8found to restore


RMAN-06023: no backup or copy of datafile 7found to restore


RMAN-06023: no backup or copy of datafile 5found to restore


RMAN-06023: no backup or copy of datafile 4found to restore


RMAN-06023: no backup or copy of datafile 3found to restore


RMAN-06023: no backup or copy of datafile 2found to restore


RMAN-06023: no backup or copy of datafile 1found to restore


RMAN>


PS:遗憾的是恢复失败,google了很久,发现只能通过sys.dbms_backup_restore.restoreDatafileTo的方式来做不完全一致恢复。


--------------------------------------推荐阅读 -----------------------------------