--RMAN备份介质的移动与再恢复测试
---------------------------------------------------------2013/09/21
由于目前生产环境中没有集中的备份条件,所以备份要考虑到可以移动再恢复性.这里要测试的就是,RMAN全部备份的介质,我关注是否可以定期的移动到其他存储介质中,到要恢复的时候再拿过来.
1. 备份现有数据库和控制文件.
RMAN> backup database include current controlfile;
2. 移走备份集,到另外的目录/u01/app/oracle/flash_recovery_area/august/AUGUST/backupset/o1_mf_nnndf_TAG20130920T235853_93tjxkb9_.bkp
3. 查看过期的备份介质.
RMAN> report obsolete;
RMAN retention policy will be applied to the command
RMAN retention policy is set to redundancy 1
Report of obsolete backups and copies
Type Key Completion Time Filename/Handle
-------------------- ------ ------------------ --------------------
Archive Log 1 15-SEP-13 /u01/app/oracle/flash_recovery_area/august/AUGUST/archivelog/2013_09_15/o1_mf_1_2_93cc8thy_.arc
Archive Log 2 15-SEP-13 /u01/app/oracle/flash_recovery_area/august/AUGUST/archivelog/2013_09_15/o1_mf_1_3_93ck0mxm_.arc
Archive Log 3 16-SEP-13 /u01/app/oracle/flash_recovery_area/august/AUGUST/archivelog/2013_09_16/o1_mf_1_4_93ftwxqj_.arc
Archive Log 4 19-SEP-13 /u01/app/oracle/flash_recovery_area/august/AUGUST/archivelog/2013_09_19/o1_mf_1_5_93o9xt7k_.arc
Backup Set 1 19-SEP-13
Backup Piece 1 19-SEP-13 /u01/app/oracle/flash_recovery_area/august/AUGUST/backupset/2013_09_19/o1_mf_nnndf_TAG20130919T011640_93odqb65_.bkp
Archive Log 5 19-SEP-13 /u01/app/oracle/flash_recovery_area/august/AUGUST/archivelog/2013_09_19/o1_mf_1_6_93qgls17_.arc
Backup Set 2 19-SEP-13
Backup Piece 2 19-SEP-13 /u01/app/oracle/flash_recovery_area/august/AUGUST/backupset/2013_09_19/o1_mf_ncsnf_TAG20130919T011640_93odvkkc_.bkp
Archive Log 6 19-SEP-13 /u01/app/oracle/flash_recovery_area/august/AUGUST/archivelog/2013_09_19/o1_mf_1_7_93qh7sqx_.arc
Archive Log 7 19-SEP-13 /u01/app/oracle/flash_recovery_area/august/AUGUST/archivelog/2013_09_19/o1_mf_1_8_93qs3s52_.arc
Archive Log 8 20-SEP-13 /u01/app/oracle/flash_recovery_area/august/AUGUST/archivelog/2013_09_20/o1_mf_1_1_93qzp568_.arc
Backup Set 3 19-SEP-13
Backup Piece 3 19-SEP-13 /u01/app/oracle/flash_recovery_area/august/AUGUST/autobackup/2013_09_19/o1_mf_s_826585286_93qs5xdg_.bkp
Archive Log 15 20-SEP-13 /u01/app/oracle/flash_recovery_area/august/AUGUST/archivelog/2013_09_20/o1_mf_1_1_93t8b5jm_.arc
Backup Set 4 20-SEP-13
Backup Piece 4 20-SEP-13 /u01/app/oracle/flash_recovery_area/august/AUGUST/autobackup/2013_09_20/o1_mf_s_826666416_93t8gcfz_.bkp
Backup Set 6 21-SEP-13
Backup Piece 6 21-SEP-13 /u01/app/oracle/flash_recovery_area/august/AUGUST/backupset/2013_09_21/o1_mf_ncnnf_TAG20130920T235853_93tkd6kk_.bkp
4. 删除过期的备份介质.
RMAN> delete obsolete(nopormt指定无需确认立即删除)
5. 由于我们已经讲备份的介质移走了,但是RMAN的备份记录中依然存在,清除这些信息。
RMAN> crosscheck backup;
using channel ORA_DISK_1
crosschecked backup piece: found to be 'EXPIRED'
backup piece handle=/u01/app/oracle/flash_recovery_area/august/AUGUST/backupset/2013_09_20/o1_mf_nnndf_TAG20130920T235853_93tjxkb9_.bkp RECID=5 STAMP=826675137
crosschecked backup piece: found to be 'AVAILABLE'
backup piece handle=/u01/app/oracle/flash_recovery_area/august/AUGUST/autobackup/2013_09_21/o1_mf_s_826675611_93tkdfgw_.bkp RECID=7 STAMP=826675613
Crosschecked 2 objects
6. 删除过期的备份信息。
RMAN> delete expired backup;
using channel ORA_DISK_1
List of Backup Pieces
BP Key BS Key Pc# Cp# Status Device Type Piece Name
------- ------- --- --- ----------- ----------- ----------
5 5 1 1 EXPIRED DISK /u01/app/oracle/flash_recovery_area/august/AUGUST/backupset/2013_09_20/o1_mf_nnndf_TAG20130920T235853_93tjxkb9_.bkp
Do you really want to delete the above objects (enter YES or NO)? yes
deleted backup piece
backup piece handle=/u01/app/oracle/flash_recovery_area/august/AUGUST/backupset/2013_09_20/o1_mf_nnndf_TAG20130920T235853_93tjxkb9_.bkp RECID=5 STAMP=826675137
Deleted 1 EXPIRED objects
7. 关闭数据库删除控制文件和数据文件。
8. 启动数据库到nomount下,恢复控制文件。
RMAN> startup nomount;
Oracle instance started
.
.
RMAN> restore controlfile from autobackup;
Starting restore at 21-SEP-13
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=18 device type=DISK
recovery area destination: /u01/app/oracle/flash_recovery_area/august
database name (or database unique name) used for search: AUGUST
channel ORA_DISK_1: AUTOBACKUP /u01/app/oracle/flash_recovery_area/august/AUGUST/autobackup/2013_09_21/o1_mf_s_826675611_93tkdfgw_.bkp found in the recovery area
channel ORA_DISK_1: looking for AUTOBACKUP on day: 20130921
channel ORA_DISK_1: restoring control file from AUTOBACKUP /u01/app/oracle/flash_recovery_area/august/AUGUST/autobackup/2013_09_21/o1_mf_s_826675611_93tkdfgw_.bkp
channel ORA_DISK_1: control file restore from AUTOBACKUP complete
output file name=/u01/app/oracle/oradata/august/august/control01.ctl
output file name=/u01/app/oracle/flash_recovery_area/august/august/control02.ctl
Finished restore at 21-SEP-13
9. 改变数据库到mount状态,从备份集中恢复数据库。
RMAN> alter database mount;
database mounted
released channel: ORA_DISK_1
RMAN> restore database from '/u01/app/oracle/flash_recovery_area/august/AUGUST/backupset/o1_mf_nnndf_TAG20130920T235853_93tjxkb9_.bkp';
Starting restore at 21-SEP-13
Starting implicit crosscheck backup at 21-SEP-13
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=18 device type=DISK
Crosschecked 6 objects
Finished implicit crosscheck backup at 21-SEP-13
Starting implicit crosscheck copy at 21-SEP-13
using channel ORA_DISK_1
Finished implicit crosscheck copy at 21-SEP-13
searching for all files in the recovery area
cataloging files...
cataloging done
List of Cataloged Files
=======================
File Name: /u01/app/oracle/flash_recovery_area/august/AUGUST/backupset/o1_mf_nnndf_TAG20130920T235853_93tjxkb9_.bkp
File Name: /u01/app/oracle/flash_recovery_area/august/AUGUST/archivelog/2013_09_21/o1_mf_1_1_93tlk8cg_.arc
File Name: /u01/app/oracle/flash_recovery_area/august/AUGUST/archivelog/2013_09_21/o1_mf_1_4_93tlvr76_.arc
File Name: /u01/app/oracle/flash_recovery_area/august/AUGUST/archivelog/2013_09_21/o1_mf_1_2_93tlkfwz_.arc
File Name: /u01/app/oracle/flash_recovery_area/august/AUGUST/archivelog/2013_09_21/o1_mf_1_3_93tlkqgj_.arc
File Name: /u01/app/oracle/flash_recovery_area/august/AUGUST/autobackup/2013_09_20/o1_mf_s_826618674_93rss9os_.bkp
File Name: /u01/app/oracle/flash_recovery_area/august/AUGUST/autobackup/2013_09_21/o1_mf_s_826675611_93tkdfgw_.bkp
using channel ORA_DISK_1
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of restore command at 09/21/2013 00:46:57
RMAN-06509: only SPFILE or control file can be restored from AUTOBACKUP
--看提示是说oracle不能这样恢复数据库。
那如何使用这个备份集恢复呢?
10. 需要先将备份集catalog到RMAN备份记录中去。
RMAN> catalog start with '/u01/app/oracle/flash_recovery_area/august/AUGUST/backupset/o1_mf_nnndf_TAG20130920T235853_93tjxkb9_.bkp';
searching for all files that match the pattern /u01/app/oracle/flash_recovery_area/august/AUGUST/backupset/o1_mf_nnndf_TAG20130920T235853_93tjxkb9_.bkp
no files found to be unknown to the database
--查看现有的备份信息,此备份集已经能够被识别了。
RMAN> list backup of database;
List of Backup Sets
===================
BS Key Type LV Size Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
5 Full 953.57M DISK 00:07:36 21-SEP-13
BP Key: 7 Status: AVAILABLE Compressed: NO Tag: TAG20130920T235853
Piece Name: /u01/app/oracle/flash_recovery_area/august/AUGUST/backupset/o1_mf_nnndf_TAG20130920T235853_93tjxkb9_.bkp
List of Datafiles in backup set 5
File LV Type Ckp SCN Ckp Time Name
---- -- ---- ---------- --------- ----
1 Full 859599 20-SEP-13 /u01/app/oracle/oradata/august/august/system01.dbf
2 Full 859599 20-SEP-13 /u01/app/oracle/oradata/august/august/sysaux01.dbf
3 Full 859599 20-SEP-13 /u01/app/oracle/oradata/august/august/undotbs01.dbf
4 Full 859599 20-SEP-13 /u01/app/oracle/oradata/august/august/users01.dbf
11. 将备份集信息编目后,就可以使用restore开始恢复数据库了。
RMAN> restore database;
Starting restore at 21-SEP-13
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 00001 to /u01/app/oracle/oradata/august/august/system01.dbf
channel ORA_DISK_1: restoring datafile 00002 to /u01/app/oracle/oradata/august/august/sysaux01.dbf
channel ORA_DISK_1: restoring datafile 00003 to /u01/app/oracle/oradata/august/august/undotbs01.dbf
channel ORA_DISK_1: restoring datafile 00004 to /u01/app/oracle/oradata/august/august/users01.dbf
channel ORA_DISK_1: reading from backup piece /u01/app/oracle/flash_recovery_area/august/AUGUST/backupset/o1_mf_nnndf_TAG20130920T235853_93tjxkb9_.bkp
channel ORA_DISK_1: piece handle=/u01/app/oracle/flash_recovery_area/august/AUGUST/backupset/o1_mf_nnndf_TAG20130920T235853_93tjxkb9_.bkp tag=TAG20130920T235853
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:05:36
Finished restore at 21-SEP-13
12. 进行介质恢复。
RMAN> recover database;
Starting recover at 21-SEP-13
using channel ORA_DISK_1
starting media recovery
archived log for thread 1 with sequence 1 is already on disk as file /u01/app/oracle/flash_recovery_area/august/AUGUST/archivelog/2013_09_21/o1_mf_1_1_93tlk8cg_.arc
archived log for thread 1 with sequence 2 is already on disk as file /u01/app/oracle/flash_recovery_area/august/AUGUST/archivelog/2013_09_21/o1_mf_1_2_93tlkfwz_.arc
archived log for thread 1 with sequence 3 is already on disk as file /u01/app/oracle/flash_recovery_area/august/AUGUST/archivelog/2013_09_21/o1_mf_1_3_93tlkqgj_.arc
archived log for thread 1 with sequence 4 is already on disk as file /u01/app/oracle/flash_recovery_area/august/AUGUST/archivelog/2013_09_21/o1_mf_1_4_93tlvr76_.arc
archived log for thread 1 with sequence 5 is already on disk as file /u01/app/oracle/oradata/august/august/redo02.log
archived log file name=/u01/app/oracle/flash_recovery_area/august/AUGUST/archivelog/2013_09_21/o1_mf_1_1_93tlk8cg_.arc thread=1 sequence=1
archived log file name=/u01/app/oracle/flash_recovery_area/august/AUGUST/archivelog/2013_09_21/o1_mf_1_2_93tlkfwz_.arc thread=1 sequence=2
archived log file name=/u01/app/oracle/flash_recovery_area/august/AUGUST/archivelog/2013_09_21/o1_mf_1_3_93tlkqgj_.arc thread=1 sequence=3
archived log file name=/u01/app/oracle/flash_recovery_area/august/AUGUST/archivelog/2013_09_21/o1_mf_1_4_93tlvr76_.arc thread=1 sequence=4
archived log file name=/u01/app/oracle/oradata/august/august/redo02.log thread=1 sequence=5
media recovery complete, elapsed time: 00:00:24
Finished recover at 21-SEP-13
RMAN> alter database open;
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of alter db command at 09/21/2013 01:45:51
ORA-01589: must use RESETLOGS or NORESETLOGS option for database open
RMAN> alter database open noresetlogs;
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-00558: error encountered while parsing input commands
RMAN-01009: syntax error: found "identifier": expecting one of: "resetlogs, ;"
RMAN-01008: the bad identifier was: noresetlogs
RMAN-01007: at line 1 column 21 file: standard input
RMAN> alter database open resetlogs;
database opened
--之前讲过,在使用了备份的控制文件进行恢复之后,是需要用resetlogs方式打开的。
所以总结来说,利用备份集的移动是没有问题的,恢复时只需要重新编目到备份集信息中即可。 [catalog start with ‘dir’]