1.RMAN 備份腳本
RUN { CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS; CONFIGURE CONTROLFILE AUTOBACKUP ON; CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO "/backup/ZGW_Controlfile_%F"; ALLOCATE CHANNEL CH1 DEVICE TYPE DISK; ALLOCATE CHANNEL CH2 DEVICE TYPE DISK; BACKUP DATABASE FORMAT "/backup/ZGW_%U" SKIP INACCESSIBLE FILESPERSET 10 PLUS ARCHIVELOG FILESPERSET 20 DELETE ALL INPUT; RELEASE CHANNEL CH1; RELEASE CHANNEL CH2; } BACKUP SPFILE FORMAT '/backup/ZGW_spfile_%U.bak'; ALLOCATE CHANNEL FOR MAINTENANCE DEVICE TYPE DISK; CROSSCHECK BACKUPSET; DELETE NOPROMPT OBSOLETE;
2.執行備份
export ORACLE_SID=zgw
rman target / @/home/oracle/scipts/rman_backup.rman
3.備份數據打包並傳輸
tar czvf zgw.tar.gz /ackup/ZGW* scp zgw.tar.gz 192.168.199.68:/home/oracle/backup/
4.異機恢復環境准備
#環境變量 export ORACLE_SID=zgw export ORACLE_BASE=/opt/oracle export ORACLE_HOME=/opt/oracle/11g #由於只安裝軟件未創建數據庫所以需創建對應文件夾 mkdir -p $ORACLE_BASE/admin/zgw/adump/ mkdir -p $ORACLE_BASE/admin/zgw/dpdump/ mkdir -p $ORACLE_BASE/admin/zgw/pfile/ mkdir -p $ORACLE_BASE/oradata/zgw/ mkdir -p $ORACLE_BASE/flash_recovery_area mkdir -p $ORACLE_BASE/flash_recovery_area/zgw
5.恢復操作
$ rman target / Recovery Manager: Release 11.2.0.1.0 - Production on Thu May 28 16:27:19 2015 Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved. connected to target database (not started) RMAN> startup nomount; startup failed: ORA-01078: failure in processing system parameters LRM-00109: could not open parameter file '/opt/oracle/11g/dbs/initzgw.ora' starting Oracle instance without parameter file for retrieval of spfile Oracle instance started Total System Global Area 158662656 bytes Fixed Size 2211448 bytes Variable Size 88080776 bytes Database Buffers 62914560 bytes Redo Buffers 5455872 bytes RMAN> restore spfile from '/home/oracle/backup/ZGW_spfile_0pq82u8b_1_1.bak'; //恢復spfile文件 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RMAN> startup nomount force; RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-03002: failure of startup command at 05/28/2015 16:33:12 RMAN-04014: startup failed: ORA-01261: Parameter db_recovery_file_dest destination string cannot be translated ORA-01262: Stat failed on a file destination directory Linux-x86_64 Error: 2: No such file or directory mkdir -p $ORACLE_BASE/flash_recovery_area ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RMAN> startup nomount force; //重啟實例到nomount狀態 Oracle instance started Total System Global Area 776646656 bytes Fixed Size 2217384 bytes Variable Size 532679256 bytes Database Buffers 239075328 bytes Redo Buffers 2674688 bytes +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RMAN> restore controlfile from '/home/oracle/backup/ZGW_Controlfile_c-4066279841-20150528-03'; Starting restore at 28-MAY-15 allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=19 device type=DISK channel ORA_DISK_1: restoring control file RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-03002: failure of restore command at 05/28/2015 16:40:45 ORA-19504: failed to create file "/opt/oracle/flash_recovery_area/zgw/control02.ctl" ORA-27040: file create error, unable to create file Linux-x86_64 Error: 2: No such file or directory ORA-19600: input file is control file (/opt/oracle/oradata/zgw/control01.ctl) ORA-19601: output file is control file (/opt/oracle/flash_recovery_area/zgw/control02.ctl) mkdir -p $ORACLE_BASE/flash_recovery_area/zgw +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RMAN> restore controlfile from '/home/oracle/backup/ZGW_Controlfile_c-4066279841-20150528-03'; //還原控制文件 Starting restore at 28-MAY-15 using channel ORA_DISK_1 channel ORA_DISK_1: restoring control file channel ORA_DISK_1: restore complete, elapsed time: 00:00:01 output file name=/opt/oracle/oradata/zgw/control01.ctl output file name=/opt/oracle/flash_recovery_area/zgw/control02.ctl Finished restore at 28-MAY-15 RMAN> sql 'alter database mount'; //啟動數據庫到mount狀態 sql statement: alter database mount released channel: ORA_DISK_1 RMAN> list backup of database; //查看備份集 List of Backup Sets =================== BS Key Type LV Size Device Type Elapsed Time Completion Time ------- ---- -- ---------- ----------- ------------ --------------- 16 Full 988.79M DISK 00:01:35 28-MAY-15 BP Key: 16 Status: AVAILABLE Compressed: NO Tag: TAG20150528T135534 Piece Name: /backup/0hq82s2m_1_1 List of Datafiles in backup set 16 File LV Type Ckp SCN Ckp Time Name ---- -- ---- ---------- --------- ---- 1 Full 1081536 28-MAY-15 /opt/oracle/oradata/zgw/system01.dbf 2 Full 1081536 28-MAY-15 /opt/oracle/oradata/zgw/sysaux01.dbf 3 Full 1081536 28-MAY-15 /opt/oracle/oradata/zgw/undotbs01.dbf 4 Full 1081536 28-MAY-15 /opt/oracle/oradata/zgw/users01.dbf BS Key Type LV Size Device Type Elapsed Time Completion Time ------- ---- -- ---------- ----------- ------------ --------------- 20 Full 396.28M DISK 00:01:14 28-MAY-15 BP Key: 20 Status: AVAILABLE Compressed: NO Tag: TAG20150528T143051 Piece Name: /backup/ZGW_0mq82u4r_1_1 List of Datafiles in backup set 20 File LV Type Ckp SCN Ckp Time Name ---- -- ---- ---------- --------- ---- 2 Full 1083181 28-MAY-15 /opt/oracle/oradata/zgw/sysaux01.dbf 3 Full 1083181 28-MAY-15 /opt/oracle/oradata/zgw/undotbs01.dbf BS Key Type LV Size Device Type Elapsed Time Completion Time ------- ---- -- ---------- ----------- ------------ --------------- 21 Full 592.91M DISK 00:01:37 28-MAY-15 BP Key: 21 Status: AVAILABLE Compressed: NO Tag: TAG20150528T143051 Piece Name: /backup/ZGW_0lq82u4r_1_1 List of Datafiles in backup set 21 File LV Type Ckp SCN Ckp Time Name ---- -- ---- ---------- --------- ---- 1 Full 1083180 28-MAY-15 /opt/oracle/oradata/zgw/system01.dbf 4 Full 1083180 28-MAY-15 /opt/oracle/oradata/zgw/users01.dbf +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ RMAN> restore database from '/home/oracle/backup/ZGW_0mq82u4r_1_1'; Starting restore at 28-MAY-15 Starting implicit crosscheck backup at 28-MAY-15 allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=19 device type=DISK Crosschecked 9 objects Finished implicit crosscheck backup at 28-MAY-15 Starting implicit crosscheck copy at 28-MAY-15 using channel ORA_DISK_1 Finished implicit crosscheck copy at 28-MAY-15 searching for all files in the recovery area cataloging files... no files cataloged using channel ORA_DISK_1 RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-03002: failure of restore command at 05/28/2015 16:50:44 RMAN-06509: only SPFILE or control file can be restored from AUTOBACKUP
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
RMAN> catalog start with '/home/oracle/backup/'; //將備份集導入控制文件,此處適用於異機還原時備份集沒有在默認位置的場景。 searching for all files that match the pattern /home/oracle/backup/ List of Files Unknown to the Database ===================================== File Name: /home/oracle/backup/ZGW_0mq82u4r_1_1 File Name: /home/oracle/backup/ZGW_spfile_0pq82u8b_1_1.bak File Name: /home/oracle/backup/ZGW_0lq82u4r_1_1 File Name: /home/oracle/backup/ZGW_Controlfile_c-4066279841-20150528-03 File Name: /home/oracle/backup/ZGW_Controlfile_c-4066279841-20150528-04 File Name: /home/oracle/backup/zgw.tar.gz Do you really want to catalog the above files (enter YES or NO)? y cataloging files... cataloging done List of Cataloged Files ======================= File Name: /home/oracle/backup/ZGW_0mq82u4r_1_1 File Name: /home/oracle/backup/ZGW_spfile_0pq82u8b_1_1.bak File Name: /home/oracle/backup/ZGW_0lq82u4r_1_1 File Name: /home/oracle/backup/ZGW_Controlfile_c-4066279841-20150528-03 File Name: /home/oracle/backup/ZGW_Controlfile_c-4066279841-20150528-04 RMAN> restore database; //還原數據文件 Starting restore at 28-MAY-15 using channel ORA_DISK_1 channel ORA_DISK_1: starting datafile backup set restore channel ORA_DISK_1: specifying datafile(s) to restore from backup set channel ORA_DISK_1: restoring datafile 00002 to /opt/oracle/oradata/zgw/sysaux01.dbf channel ORA_DISK_1: restoring datafile 00003 to /opt/oracle/oradata/zgw/undotbs01.dbf channel ORA_DISK_1: reading from backup piece /home/oracle/backup/ZGW_0mq82u4r_1_1 channel ORA_DISK_1: piece handle=/home/oracle/backup/ZGW_0mq82u4r_1_1 tag=TAG20150528T143051 channel ORA_DISK_1: restored backup piece 1 channel ORA_DISK_1: restore complete, elapsed time: 00:00:55 channel ORA_DISK_1: starting datafile backup set restore channel ORA_DISK_1: specifying datafile(s) to restore from backup set channel ORA_DISK_1: restoring datafile 00001 to /opt/oracle/oradata/zgw/system01.dbf channel ORA_DISK_1: restoring datafile 00004 to /opt/oracle/oradata/zgw/users01.dbf channel ORA_DISK_1: reading from backup piece /home/oracle/backup/ZGW_0lq82u4r_1_1 channel ORA_DISK_1: piece handle=/home/oracle/backup/ZGW_0lq82u4r_1_1 tag=TAG20150528T143051 channel ORA_DISK_1: restored backup piece 1 channel ORA_DISK_1: restore complete, elapsed time: 00:00:56 Finished restore at 28-MAY-15 RMAN> recover database; Starting recover at 28-MAY-15 using channel ORA_DISK_1 starting media recovery RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-03002: failure of recover command at 05/28/2015 17:07:45 RMAN-06053: unable to perform media recovery because of missing log RMAN-06025: no backup of archived log for thread 1 with sequence 12 and starting SCN of 1083172 found to restore //這里報日志缺少,實際上是備份的數據庫文件后,沒有備份歸檔日志,歸檔日志全部丟失 //下面嘗試進行不完全恢復 $ sqlplus / as sysdba SQL*Plus: Release 11.2.0.1.0 Production on Thu May 28 17:08:29 2015 Copyright (c) 1982, 2009, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL> recover database using backup controlfile until cancel; ORA-00279: change 1083180 generated at 05/28/2015 14:30:51 needed for thread 1 ORA-00289: suggestion : /opt/oracle/flash_recovery_area/ZGW/archivelog/2015_05_28/o1_mf_1_12_%u_.arc ORA-00280: change 1083180 for thread 1 is in sequence #12 Specify log: {<RET>=suggested | filename | AUTO | CANCEL} ORA-00308: cannot open archived log '/opt/oracle/flash_recovery_area/ZGW/archivelog/2015_05_28/o1_mf_1_12_%u_.arc' ORA-27037: unable to obtain file status Linux-x86_64 Error: 2: No such file or directory Additional information: 3 SQL> alter database open resetlogs; //至此恢復完畢 Database altered. SQL> select name,OPEN_MODE from v$database; //驗證數據庫狀態 NAME OPEN_MODE --------- -------------------- ZGW READ WRITE
此文參考:
第六篇 實戰RMAN備份 http://www.5ienet.com/note/html/rman/rman-backup-script-example.shtml
Rman備份異機恢復指南 http://ylw6006.blog.51cto.com/470441/659104/
Oracle 11g RMAN 備份異機恢復並創建新DBID http://blog.csdn.net/leishifei/article/details/6317688
catalog start with rman備份集直接導入控制文件中 http://blog.itpub.net/27042095/viewspace-759237/
使用_allow_resetlogs_corruption打開無歸檔日志rman備份庫 http://www.xifenfei.com/2619.html
