福永自适应网站建,域名到期对网站影响,沈阳网站排名工具,房子装修设计app天萃荷净 使用dbms_backup_restore包恢复数据库 Oracle提供了一个包:DBMS_BACKUP_RESTORE包是由dbmsbkrs.sql 和 prvtbkrs.plb 这两个脚本创建的.catproc.sql 脚本运行后会调用这两个包.所以是每个数据库都有的这个包是Oracle服务器和操作系统之间IO操作的接口.由恢复管理器直接… 天萃荷净 使用dbms_backup_restore包恢复数据库 Oracle提供了一个包:DBMS_BACKUP_RESTORE包是由dbmsbkrs.sql 和 prvtbkrs.plb 这两个脚本创建的.catproc.sql 脚本运行后会调用这两个包.所以是每个数据库都有的这个包是Oracle服务器和操作系统之间IO操作的接口.由恢复管理器直接调用。而且据说这两个脚本的功能是内建到Oracle的一些库文件中的. 由此可见我们可以在数据库 nomount 情况下调用这些package ,来达到我们的恢复目的 1、启动数据库到nomount状态 [oraclenode1 ora11g]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.3.0 Production on Mon Dec 19 13:34:22 2011 Copyright (c) 1982, 2011, Oracle. All rights reserved. Connected to an idle instance. SQL startup nomount ORACLE instance started. Total System Global Area 2137886720 bytes Fixed Size 2230072 bytes Variable Size 1493174472 bytes Database Buffers 637534208 bytes Redo Buffers 4947968 bytes 2、恢复controlfile SQL DECLARE 2 devtype varchar2(256); 3 done boolean; 4 BEGIN 5 devtype:sys.dbms_backup_restore.deviceAllocate (type,identt1); 6 sys.dbms_backup_restore.restoreSetDatafile; 7 sys.dbms_backup_restore.restoreControlfileTo(cfname/opt/oracle/oracleplus/ora11g/control01.ctl); 8 sys.dbms_backup_restore.restoreBackupPiece(donedone,handle/tmp/ora11g_02mu1avd_1_1.rman, paramsnull); 9 sys.dbms_backup_restore.deviceDeallocate; 10 END; 11 / PL/SQL procedure successfully completed. 3、恢复数据文件 SQL DECLARE 2 devtype varchar2(256); 3 done boolean; 4 BEGIN 5 devtype:sys.dbms_backup_restore.deviceAllocate (type,identt1); 6 sys.dbms_backup_restore.restoreSetDatafile; 7 sys.dbms_backup_restore.restoreDatafileTo(dfnumber1,toname/opt/oracle/oracleplus/ora11g/system01.dbf); sys.dbms_backup_restore.restoreDatafileTo(dfnumber2,toname/opt/oracle/oracleplus/ora11g/sysaux01.dbf); sys.dbms_backup_restore.restoreDatafileTo(dfnumber3,toname/opt/oracle/oracleplus/ora11g/undotbs01.dbf); 8 9 10 sys.dbms_backup_restore.restoreDatafileTo(dfnumber4,toname/opt/oracle/oracleplus/ora11g/users01.dbf); 11 sys.dbms_backup_restore.restoreDatafileTo(dfnumber5,toname/opt/oracle/oracleplus/ora11g/example01.dbf); 12 sys.dbms_backup_restore.restoreBackupPiece(donedone,handle/tmp/ora11g_01mu1aqq_1_1.rman, paramsnull); 13 sys.dbms_backup_restore.deviceDeallocate; 14 END; 15 / PL/SQL procedure successfully completed. 4、启动数据库 SQL alter database mount; SQL alter database recover until cancel using backup controlfile; SQL alter database open resetlogs; 5、特别说明 在oracle 10g及其以后版本中因为rman中有catalog with start命令可以实现rman备份的加载所以不需要使用dbms_backup_restore包处理在oracle 9i及其以前版本中可能因为没有catalog库控制文件中又没有了备份集信息需要采用这种方法处理数据文件还原然后根据实际情况使用ALTER DATABASE REGISTER LOGFILE 添加日志进行恢复 --------------------------------------ORACLE-DBA---------------------------------------- 最权威、专业的Oracle案例资源汇总之【学习笔记】使用dbms_backup_restore包恢复数据库