【DB笔试面试228】在Oracle中,怎么从备份片(BACKUPPIECE)中恢复(RESTORE)控制文件与数据文件?_oracle

 

Q题目如下所示:

在Oracle中,怎么从备份片(BACKUPPIECE)中恢复(RESTORE)控制文件与数据文件?

 

     A答案如下所示:

 

可以使用如下方法,在RMAN中恢复备份片的控制文件:

RESTORE CONTROLFILE FROM BACKUPPIECEFILE;

如果是自动备份,可以采用如下的方法:

RESTORE CONTROLFILE FROM AUTOBACKUP;

但是,如果控制文件全部丢失,需要指定DBID,命令为“SET DBID=?”。自动备份控制文件的默认格式是%F,这个格式的形式为“c-IIIIIIIIII-YYYYMMDD-QQ”,其中IIIIIIIIII就是DBID。可以采用包DBMS_BACKUP_RESTORE来恢复(RESTORE)数据文件,当然该包也可以用来恢复备份片中的控制文件。该包在NOMOUNT状态下就可以执行,如下所示:

SQL>startup nomount

SQL> DECLARE

  2 devtype varchar2(256);

  3 done boolean;

  4 BEGIN

  5 devtype := dbms_backup_restore.deviceallocate('', params=>'');

  6 dbms_backup_restore.restoresetdatafile;

  7 dbms_backup_restore.restorecontrolfileto('E:\Oracle\oradata\lhrdb\control01.ctl');

  8 dbms_backup_restore.restoreDataFileto(1,'E:\Oracle\oradata\lhrdb\system01.dbf');

  9 dbms_backup_restore.restoreDataFileto(2,'E:\Oracle\oradata\lhrdb\UNDOTBS01.DBF');

10 dbms_backup_restore.restoreDataFileto(3,'E:\ORACLE\ORADATA\lhrdb\USERS01.DBF');

11 dbms_backup_restore.restorebackuppiece('D:\orabak\BACKUP_1_4_04F4IAJT.lhrdb',done=>done);

12 END;

13 /

PL/SQL 过程已成功完成。

SQL> alter database mount; 

 

 

DB笔试面试历史连接

http://mp.weixin.qq.com/s/Vm5PqNcDcITkOr9cQg6T7w

 

About Me:小麦苗

● 本文作者:小麦苗,只专注于数据库的技术,更注重技术的运用

● 版权所有,欢迎分享本文,转载请保留出处

● 题目解答若有不当之处,还望各位朋友批评指正,共同进步

 

【DB笔试面试228】在Oracle中,怎么从备份片(BACKUPPIECE)中恢复(RESTORE)控制文件与数据文件?_面试_02

 

 

本文分享自微信公众号 - DB宝(lhrdba)。
如有侵权,请删除。