Rman异机恢复操作指南

来源:互联网 发布:用fidder抓包篡改数据 编辑:程序博客网 时间:2024/06/07 03:44

本次实验为相同平台的两台数据库服务器,目标端只安装oracle软件,且目标端与源端数据文件等目录保持一致。

1. 源端进行全备

--全备脚本[oracle@orcl scripts]$ cat rman_full_backup.sh source /home/oracle/.bash_profile  rman target / log=/home/oracle/backup/logs/backupall_rman.log<<EOFrun  {  allocate channel ch1 device type disk;  #分配通道  allocate channel ch2 device type disk;  sql 'alter system archive log current'; #归档当前日志  backup database format '/home/oracle/backup/bak/db_%d_%T_%U';  sql 'alter system archive log current';  backup archivelog all format '/home/oracle/backup//bak/arch_%t_%s' delete all input;  backup format '/home/oracle/backup/bak/con_%s_%p' current controlfile;  crosscheck backup;  crosscheck archivelog all;  delete noprompt expired backup;  delete noprompt obsolete;  delete noprompt backup of database completed before 'sysdate -15';  delete noprompt archivelog all;  delete noprompt backup of archivelog all completed before 'sysdate -15';  release channel ch1;  release channel ch2;  }  EOF

2. 将备份文件传输到目标端

[oracle@orcl bak]$ scp * oracle@orcl_adg:/home/oracle/backuparch_958157782_41                                                                             100%   12KB  12.0KB/s   00:00    arch_958157783_42                                                                             100% 2560     2.5KB/s   00:00    con_43_1                                                                                      100% 9568KB   9.3MB/s   00:00    db_ORCL_20171023_14shokse_1_1                                                                 100%  636MB  31.8MB/s   00:20    db_ORCL_20171023_15shokse_1_1                                                                 100%  400MB  25.0MB/s   00:16    db_ORCL_20171023_17shokuj_1_1                                                                 100%   96KB  96.0KB/s   00:00 

3. 在目标端设置DBID,启动到nomount阶段

注:在rman下即使没有参数文件,默认也会启动一个DUMMY实例,以便能够恢复参数文件

[oracle@orcl_adg ~]$ rman target /Recovery Manager: Release 11.2.0.4.0 - Production on Thu Nov 2 08:30:55 2017Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.connected to target database (not started)RMAN> set dbid 1485808053executing command: SET DBIDRMAN> startup nomount;Oracle instance startedTotal System Global Area     776646656 bytesFixed Size                     2257272 bytesVariable Size                507514504 bytesDatabase Buffers             264241152 bytesRedo Buffers                   2633728 bytes

4. 从备份中恢复spfile参数文件,重新启动到nomount状态

RMAN> restore spfile to '/u01/app/oracle/product/11.2.0/db_1/dbs/spfileorcl.ora' from '/home/oracle/backup/db_ORCL_20171023_17shokuj_1_1';Starting restore at 2017-11-02 08:37:26using target database control file instead of recovery catalogallocated channel: ORA_DISK_1channel ORA_DISK_1: SID=19 device type=DISKchannel ORA_DISK_1: restoring spfile from AUTOBACKUP /home/oracle/backup/db_ORCL_20171023_17shokuj_1_1channel ORA_DISK_1: SPFILE restore from AUTOBACKUP completeFinished restore at 2017-11-02 08:37:27RMAN> startup force nomount;Oracle instance startedTotal System Global Area     776646656 bytesFixed Size                     2257272 bytesVariable Size                507514504 bytesDatabase Buffers             264241152 bytesRedo Buffers                   2633728 bytes

5. 备份中恢复控制文件,启动到mount状态

RMAN> restore controlfile to '/u01/app/oracle/oradata/orcl/control01.ctl' from '/home/oracle/backup/con_43_1';                  Starting restore at 2017-11-02 08:41:19allocated channel: ORA_DISK_1channel ORA_DISK_1: SID=19 device type=DISKchannel ORA_DISK_1: restoring control filechannel ORA_DISK_1: restore complete, elapsed time: 00:00:01Finished restore at 2017-11-02 08:41:20[oracle@orcl_adg orcl]$ cp control01.ctl $ORACLE_BASE/fast_recovery_area/orcl/control02.ctlRMAN> alter database mount;database mounted

6. 在新的控制文件中注册数据文件备份和归档备份(可选)

RMAN> catalog start with '/home/oracle/backup';Starting implicit crosscheck backup at 2017-11-02 08:51:11allocated channel: ORA_DISK_1channel ORA_DISK_1: SID=19 device type=DISKCrosschecked 7 objectsFinished implicit crosscheck backup at 2017-11-02 08:51:11Starting implicit crosscheck copy at 2017-11-02 08:51:11using channel ORA_DISK_1Finished implicit crosscheck copy at 2017-11-02 08:51:11searching for all files in the recovery areacataloging files...cataloging doneList of Cataloged Files=======================File Name: /u01/app/oracle/fast_recovery_area/ORCL/archivelog/2017_11_01/o1_mf_1_1_dzls0srw_.arcFile Name: /u01/app/oracle/fast_recovery_area/ORCL/archivelog/2017_11_02/o1_mf_1_1_dznqlcrk_.arcsearching for all files that match the pattern /home/oracle/backupList of Files Unknown to the Database=====================================File Name: /home/oracle/backup/db_ORCL_20171023_14shokse_1_1File Name: /home/oracle/backup/arch_958157782_41File Name: /home/oracle/backup/db_ORCL_20171023_17shokuj_1_1File Name: /home/oracle/backup/db_ORCL_20171023_15shokse_1_1File Name: /home/oracle/backup/arch_958157783_42File Name: /home/oracle/backup/con_43_1Do you really want to catalog the above files (enter YES or NO)? yescataloging files...cataloging doneList of Cataloged Files=======================File Name: /home/oracle/backup/db_ORCL_20171023_14shokse_1_1File Name: /home/oracle/backup/arch_958157782_41File Name: /home/oracle/backup/db_ORCL_20171023_17shokuj_1_1File Name: /home/oracle/backup/db_ORCL_20171023_15shokse_1_1File Name: /home/oracle/backup/arch_958157783_42File Name: /home/oracle/backup/con_43_1

7. 还原恢复数据库

--小插曲,需要将incarnation重置才能restore操作

RMAN> restore database;Starting restore at 2017-11-02 08:51:51using channel ORA_DISK_1RMAN-00571: ===========================================================RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============RMAN-00571: ===========================================================RMAN-03002: failure of restore command at 11/02/2017 08:51:51RMAN-06026: some targets not found - aborting restoreRMAN-06023: no backup or copy of datafile 4 found to restoreRMAN-06023: no backup or copy of datafile 3 found to restoreRMAN-06023: no backup or copy of datafile 2 found to restoreRMAN-06023: no backup or copy of datafile 1 found to restoreRMAN> list incarnation;List of Database IncarnationsDB Key  Inc Key DB Name  DB ID            STATUS  Reset SCN  Reset Time------- ------- -------- ---------------- --- ---------- ----------1       1       ORCL     1485808053       PARENT  1          2013-08-24 11:37:302       2       ORCL     1485808053       PARENT  925702     2017-10-22 06:41:573       3       ORCL     1485808053       ORPHAN  965987     2017-11-01 07:30:144       4       ORCL     1485808053       CURRENT 1028073    2017-11-02 07:13:43RMAN> reset database to incarnation 2;database reset to incarnation 2

RMAN> restore database;Starting restore at 2017-11-02 08:56:45using channel ORA_DISK_1channel ORA_DISK_1: starting datafile backup set restorechannel ORA_DISK_1: specifying datafile(s) to restore from backup setchannel ORA_DISK_1: restoring datafile 00002 to /u01/app/oracle/oradata/orcl/sysaux01.dbfchannel ORA_DISK_1: restoring datafile 00004 to /u01/app/oracle/oradata/orcl/users01.dbfchannel ORA_DISK_1: restoring datafile 00005 to /u01/app/oracle/oradata/orcl/tbs_data01.dbfchannel ORA_DISK_1: reading from backup piece /home/oracle/backup/db_ORCL_20171023_15shokse_1_1channel ORA_DISK_1: piece handle=/home/oracle/backup/db_ORCL_20171023_15shokse_1_1 tag=TAG20171023T185510channel ORA_DISK_1: restored backup piece 1channel ORA_DISK_1: restore complete, elapsed time: 00:00:25channel ORA_DISK_1: starting datafile backup set restorechannel ORA_DISK_1: specifying datafile(s) to restore from backup setchannel ORA_DISK_1: restoring datafile 00001 to /u01/app/oracle/oradata/orcl/system01.dbfchannel ORA_DISK_1: restoring datafile 00003 to /u01/app/oracle/oradata/orcl/undotbs01.dbfchannel ORA_DISK_1: reading from backup piece /home/oracle/backup/db_ORCL_20171023_14shokse_1_1channel ORA_DISK_1: piece handle=/home/oracle/backup/db_ORCL_20171023_14shokse_1_1 tag=TAG20171023T185510channel ORA_DISK_1: restored backup piece 1channel ORA_DISK_1: restore complete, elapsed time: 00:00:25Finished restore at 2017-11-02 08:57:35

--在异机恢复的场景里,一般是不会有redo日志的,这里进行不完全恢复

RMAN> recover database until scn =1034331; --因为控制文件的scn大于备份归档日志的scn,无法进行完全恢复,也可以以归档日志的最大scn进行不完全恢复Starting recover at 2017-11-02 09:11:06using channel ORA_DISK_1starting media recoverychannel ORA_DISK_1: starting archived log restore to default destinationchannel ORA_DISK_1: restoring archived logarchived log thread=1 sequence=26channel ORA_DISK_1: reading from backup piece /home/oracle/backup/arch_958157782_41channel ORA_DISK_1: piece handle=/home/oracle/backup/arch_958157782_41 tag=TAG20171023T185621channel ORA_DISK_1: restored backup piece 1channel ORA_DISK_1: restore complete, elapsed time: 00:00:01archived log file name=/u01/app/oracle/fast_recovery_area/ORCL/archivelog/2017_11_02/o1_mf_1_26_dznw5cqo_.arc thread=1 sequence=26channel default: deleting archived log(s)archived log file name=/u01/app/oracle/fast_recovery_area/ORCL/archivelog/2017_11_02/o1_mf_1_26_dznw5cqo_.arc RECID=27 STAMP=958986667channel ORA_DISK_1: starting archived log restore to default destinationchannel ORA_DISK_1: restoring archived logarchived log thread=1 sequence=27channel ORA_DISK_1: reading from backup piece /home/oracle/backup/arch_958157783_42channel ORA_DISK_1: piece handle=/home/oracle/backup/arch_958157783_42 tag=TAG20171023T185621channel ORA_DISK_1: restored backup piece 1channel ORA_DISK_1: restore complete, elapsed time: 00:00:01archived log file name=/u01/app/oracle/fast_recovery_area/ORCL/archivelog/2017_11_02/o1_mf_1_27_dznw5f2q_.arc thread=1 sequence=27channel default: deleting archived log(s)archived log file name=/u01/app/oracle/fast_recovery_area/ORCL/archivelog/2017_11_02/o1_mf_1_27_dznw5f2q_.arc RECID=28 STAMP=958986669unable to find archived logarchived log thread=1 sequence=28RMAN-00571: ===========================================================RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============RMAN-00571: ===========================================================RMAN-03002: failure of recover command at 11/02/2017 09:11:10RMAN-06054: media recovery requesting unknown archived log for thread 1 with sequence 28 and starting SCN of 1034306

RMAN> alter database open resetlogs;database opened

recover database表示恢复数据库,后面没有接任何子句,表示全恢复数据库。
recover database until cancel ,一般是不完全恢复数据库,恢复数据库,直到取消归档日志恢复为止。
recover database using backup controlfile ,这个一般是当最新的控制文件损坏的时候,需要使用备份的控制文件打开数据库,要确保备份的控制文件的SCN追平数据库的SCN,就需要归档日志去恢复,去追平数据库,保存数据库一致性才能打开数据库。
recover database using backup controlfile until cancel 这个与recover database until cancel 是一个意思,不同的是,控制文件是备份的。



原创粉丝点击