《linux下使用RMAN实现灾难恢复》由会员分享,可在线阅读,更多相关《linux下使用RMAN实现灾难恢复(6页珍藏版)》请在金锄头文库上搜索。
1、文档供参考,可复制、编制,期待您的好评与关注! 转】 linux下使用RMAN实现灾难恢复.资料恢复(不需要重新建库,直接恢复时能自动的和SID联系起来)1.将备份的rman文件放到/orabak/rmanbak/backupset下(服务器备份时候的路径)2.设置DBIDDBID在源主机上联入rman时可以看到如:orcllocalhost orcl$ rmanRecovery Manager: Release 9.2.0.8.0 - ProductionCopyright (c) 1995, 2002, Oracle Corporation. All rights reserved.RMA
2、N connect target /connected to target database: BJPEC (DBID=4227116392) 所以这里要将DBID设为4227116392orcllocalhost orcl$ rmanRecovery Manager: Release 9.2.0.8.0 - ProductionCopyright (c) 1995, 2002, Oracle Corporation. All rights reserved.RMANRMAN set dbid=4227116392正在执行命令: SET DBID2.启动例程到nomount状态RMAN con
3、nect target /已连接到目标数据库 (未启动) RMAN startup nomount;启动失败: ORA-01078: failure in processing system parametersLRM-00109: ? /oracle/ora92/INITAGIL.ORA(也可能不是这个错误,不过不要紧,不用理会)在没有参数文件的情况下启动 Oracle 实例以检索 spfileOracle 实例已启动系统全局区域总计 159383552 字节Fixed Size 1247852 字节Variable Size 54527380 字节Database Buffers 1006
4、63296 字节Redo Buffers 2945024 字节(6) 从备份中恢复spfileRMANrestore spfile from /orabak/rmanbak/backupset/Autobak_Ctrl_c-02;启动 restore 于 30-11月-06使用通道 ORA_DISK_1通道ORA_DISK_1: 已找到的自动备份: /orabak/rmanbak/backupset/Autobak_Ctrl_c-02通道 ORA_DISK_1: 从自动备份复原 SPFILE 已完成完成 restore 于 30-11月-06RMAN sql create pfile from
5、 spfile;sql 语句: create pfile from spfile修改pfile,使下列目标audit_file_destbackground_dump_destcore_dump_destuser_dump_destlog_archive_dest_ncontrol_filesdb_recovery_file_dest指向正确的位置,Pfile的位置位于: $ORACLE_HOME/DBS下spfileSID.ORA然后根据PFILE的位置,在相应位置下建立文件夹,RMAN不会自动建立文件夹RMAN sql create spfile from pfile;使用目标数据库控制文
6、件替代恢复目录sql 语句: create spfile from pfile然后马上创建密码文件,工具orapwd口令文件的命名,非windows下应该是orapwsid,而且要重启库才能生效。 例:oracleora9lnx bin$ cd $ORACLE_HOME/dbs oracleora9lnx dbs$ orapwd file=orapworcl9i password=oracle entries=5 file格式 orapwORACLE_SID password sys用户的密码 entries 最多允许sysdba/sysoper用户的数量,默认1.关闭数据库.RMAN shu
7、tdown immediate;Oracle 实例已关闭 RMAN startup nomount; # 由于spfile是放在默认位置的,因此无需指定已连接到目标数据库 (未启动)Oracle 实例已启动系统全局区域总计 209715200 字节Fixed Size 1248164 字节Variable Size 130024540 字节Database Buffers 75497472 字节Redo Buffers 2945024 字节 (7)从备份之中恢复controlfileRMAN restore controlfile from /orabak/rmanbak/backupset/
8、Autobak_Ctrl_c02;启动 restore 于 01-12月-06分配的通道: ORA_DISK_1通道 ORA_DISK_1: sid=157 devtype=DISK通道 ORA_DISK_1: 正在复原控制文件通道 ORA_DISK_1: 恢复完成, 用时: 00:00:05输出文件名=/oradata/bjpec/CONTROL01.CTL输出文件名=/oradata/bjpec/CONTROL02.CTL输出文件名=/oradata/bjpec/CONTROL03.CTL完成 restore 于 01-12月-06RMAN alter database mount;数据库
9、已装载释放的通道: ORA_DISK_1 (8)从备份中恢复数据文件restore database;(这时会建立表空间,建立过程很长,就不复制了,一般不会出现问题.)下一步可以在rman里做:recover database;也可以在sql做SQL recover database using backup controlfile until cancel; Specify log: =suggested | filename | AUTO | CANCEL(输入)CANCELMedia recovery cancelled.有时候会报些错,不用理他.有时候出现:ORA-01547: war
10、ning: RECOVER succeeded but OPEN RESETLOGS would get error belowORA-01152: file 1 was not restored from a sufficiently old backupORA-01110: data file 1: /路径/system01.dbf以上恢复方法无效,所以采用重建控制文件的方法:用to trace 备份控制文件alter database backup controlfile to trace;sqlshutdown immediate执行alter database backup cont
11、rolfile to trace;之后/oracle/ora9/admin/udump/(看里面文件的时间)目录下产生一个跟踪文件,打开这个文件,把一些不要的语句屏蔽掉,保存为一个SQL文件,就可以按SQL文件的方式进行执行,来创建新的控制文件.主要有以下内容存在,其它的可以注释掉STARTUP NOMOUNTCREATE CONTROLFILE REUSE DATABASE ORADB NORESETLOGS ARCHIVELOG- SET STANDBY TO MAXIMIZE PERFORMANCE MAXLOGFILES 5 MAXLOGMEMBERS 3 MAXDATAFILES 1
12、00 MAXINSTANCES 1 MAXLOGHISTORY 226LOGFILEGROUP 1 /opt/ora9/oradata/oradb/redo01.log SIZE 100M,GROUP 2 /opt/ora9/oradata/oradb/redo02.log SIZE 100M,GROUP 3 /opt/ora9/oradata/oradb/redo03.log SIZE 100M- STANDBY LOGFILEDATAFILE/opt/ora9/oradata/oradb/system01.dbf,/opt/ora9/oradata/oradb/undotbs01.dbf,
13、/opt/ora9/oradata/oradb/cwmlite01.dbf,/opt/ora9/oradata/oradb/drsys01.dbf,/opt/ora9/oradata/oradb/example01.dbf,/opt/ora9/oradata/oradb/indx01.dbf,/opt/ora9/oradata/oradb/odm01.dbf,/opt/ora9/oradata/oradb/tools01.dbf,/opt/ora9/oradata/oradb/users01.dbf,/opt/ora9/oradata/oradb/xdb01.dbfCHARACTER SET
14、WE8ISO8859P1之后执行此文件1.sql/controlfile.sql2.CREATE CONTROLFILE REUSE DATABASE bjpec RESETLOGS ARCHIVELOG3. RECOVER DATABASE USING BACKUP CONTROLFILE(9)用resetlogs打开数据库, 使用该热备方式做的备份和方式,一般alter database open时必须加resetlogs参数,除非是在mount状态下的冷备,并且将重做日志也复制到异机的情况下可以直接alter database open. alter database open resetlogs;如果用resetlogs选项出错的话,设置隐含参数:alter system set _allow_resetlogs_corruption=true scope=spfile;然后关闭数据库,用命令重启到mount(startup mount),然后再用alter database open resetlogs;备注:RMAN使用nocat