您的位置:首页 > 其它

利用dbms_backup_restore函数对控制文件的丢失的恢复

2010-04-12 14:49 337 查看
DECLARE

devtype varchar2(256);
done boolean;
BEGIN
devtype:=sys.dbms_backup_restore.deviceAllocate(type=>'',ident=>'T1');
sys.dbms_backup_restore.restoreSetDatafile;
sys.dbms_backup_restore.restoreControlfileTo(cfname=>'/opt/oracle/huang.ctl');
sys.dbms_backup_restore.restoreBackupPiece(done=>done,handle=>'/opt/oracle/flash_recovery_area/ORCL/backupset/2010_04_12/o1_mf_ncsnf_TAG20100412T214915_5w698bcg_.bkp', params=>null);
sys.dbms_backup_restore.deviceDeallocate;
END;

cfname=>'/opt/oracle/huang.ct表示生成的控制文件。
handle=>'/opt/oracle/flash_recovery_area/ORCL/backupset/2010_04_12/o1_mf_ncsnf_TAG20100412T214915_5w698bcg_.bkp
这个表示的是含有控制文件的RMAN备份片。

SQL> get /tmp/1.sql
1 DECLARE
2 devtype varchar2(256);
3 done boolean;
4 BEGIN
5 devtype:=sys.dbms_backup_restore.deviceAllocate(type=>'',ident=>'T1');
6 sys.dbms_backup_restore.restoreSetDatafile;
7 sys.dbms_backup_restore.restoreControlfileTo(cfname=>'/opt/oracle/huang.ctl');
8 sys.dbms_backup_restore.restoreBackupPiece(done=>done,handle=>'/opt/oracle/flash_recovery_area/ORCL/backupset/2010_04_12/o1_mf_ncsnf_TAG20100412T214915_5w698bcg_.bkp', params=>null);
9 sys.dbms_backup_restore.deviceDeallocate;
10* END;
SQL> /

PL/SQL procedure successfully completed.
查看是否已经成功生成此文件。

SQL> !ls /opt/oracle/huang.ctl;
/opt/oracle/huang.ctl

在把/opt/oracle/huang.ctl拷贝到原来的控制文件去就可以了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息