DECLARE
利用dbms_backup_restore函数对控制文件的丢失的恢复
原创
©著作权归作者所有:来自51CTO博客作者mb43f60adeco02a的原创作品,请联系作者获取转载授权,否则将追究法律责任
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拷贝到原来的控制文件去就可以了。
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
Oracle 18c--通过dbms_backup_restore包修改DBname和DBID
1.说明修改dbname和dbid可以通过nid工具来修改,但是只不能修
dbms_backup_restore sql 数据库 ide -
rman restore:在备份中恢复丢失的文件
在自动备份中恢复控制文件要是没有使用recovery cata
oracle 控制文件 自动备份 sql 文件名

















