本文共 17200 字,大约阅读时间需要 57 分钟。
在Oracle 12.2之前,当需要恢复数据库到某个时间点的时候,需要确定SCN,或者日志序列号,或者一个时间点,以便尽可能多的应用归档日志,进而尽可能多的恢复数据。从12.2开始,RMAN新增参数“UNTIL AVALIABLE REDO”,语法如下:
RMAN> RECOVER DATABASE UNTIL AVALIABLE REDO;
RMAN将会根据控制文件信息和归档日志、线日志、归档日志备份集的物理可用性,将数据库恢复到最后一个可用的归档日志。所以在进行恢复的时候,可以不需要指定SCN,或者时间或者日志序列号。需要注意的是,数据文件仍然需要在一致的情况下,数据库才能打开。
需要注意的是,这些新特性有如下的限制条件:
l 不能针对恢复数据文件或者表空间使用这个命令。
l 不能针对恢复PDB使用这个命令。
l 只能针对全库恢复使用这个命令。
12.2 NEW FEATURE : -RECOVER DATABASE UNTIL AVAILABLE REDO (文档 ID 2300465.1) |
In this Document
Goal of this Document is to explain how to use the New Feature in 12.2 Recover database until available redo.
The New Syntax available in 12.2 is
Finds the last available archived redo log and online redo logs, and recovers the database to the point where a log is missing.
The database files still needs to be consistent enough to open the database.
LIMITATIONS/RESTRICTIONS
Whenever a database needs to be restored to a Point in time we need to determine SCN, or the Sequence or time in order to apply as many archived logs as possible, to recover as much data as possible.
The new syntax helps reduce this work as rman would physically check for the available Archive/redo copy or backupset and do the recovery till the last available Archivelog based on information in Controlfile and physical availability of the Archivelog copy/redo log/Archive log backupsets.So you don't have to specify any until SCN ,Sequence or time.Here is an example which explains the new feature.
In this example we will delete couple of Archivelog's after the backups are taken.Step1 :- Take a backup of the database
Rman> backup database plus archivelog
Starting backup at 24-AUG-17
current log archivedusing channel ORA_DISK_1channel ORA_DISK_1: starting archived log backup setchannel ORA_DISK_1: specifying archived log(s) in backup setinput archived log thread=1 sequence=1 RECID=56 STAMP=952838603channel ORA_DISK_1: starting piece 1 at 24-AUG-17channel ORA_DISK_1: finished piece 1 at 24-AUG-17piece handle=/u01/app/cdb/backupset/2017_08_24/o1_mf_annnn_TAG20170824T052759_dswryzts_.bkp tag=TAG20170824T052759 comment=NONEchannel ORA_DISK_1: backup set complete, elapsed time: 00:00:07channel ORA_DISK_1: starting archived log backup setchannel ORA_DISK_1: specifying archived log(s) in backup setinput archived log thread=1 sequence=5 RECID=15 STAMP=952145574input archived log thread=1 sequence=6 RECID=16 STAMP=952145576input archived log thread=1 sequence=7 RECID=17 STAMP=952145579input archived log thread=1 sequence=10 RECID=39 STAMP=952146261input archived log thread=1 sequence=11 RECID=40 STAMP=952146361channel ORA_DISK_1: starting piece 1 at 24-AUG-17channel ORA_DISK_1: finished piece 1 at 24-AUG-17piece handle=/u01/app/cdb/backupset/2017_08_24/o1_mf_annnn_TAG20170824T052759_dswrz70f_.bkp tag=TAG20170824T052759 comment=NONEchannel ORA_DISK_1: backup set complete, elapsed time: 00:00:02channel ORA_DISK_1: starting archived log backup setchannel ORA_DISK_1: specifying archived log(s) in backup setinput archived log thread=1 sequence=2 RECID=57 STAMP=952838697input archived log thread=1 sequence=3 RECID=58 STAMP=952838705input archived log thread=1 sequence=4 RECID=59 STAMP=952838715input archived log thread=1 sequence=5 RECID=60 STAMP=952838721input archived log thread=1 sequence=6 RECID=61 STAMP=952838751input archived log thread=1 sequence=7 RECID=62 STAMP=952838785input archived log thread=1 sequence=8 RECID=63 STAMP=952838861input archived log thread=1 sequence=9 RECID=64 STAMP=952838879channel ORA_DISK_1: starting piece 1 at 24-AUG-17channel ORA_DISK_1: finished piece 1 at 24-AUG-17piece handle=/u01/app/cdb/backupset/2017_08_24/o1_mf_annnn_TAG20170824T052759_dswrz861_.bkp tag=TAG20170824T052759 comment=NONEchannel ORA_DISK_1: backup set complete, elapsed time: 00:00:01channel ORA_DISK_1: starting archived log backup setchannel ORA_DISK_1: specifying archived log(s) in backup setinput archived log thread=1 sequence=15 RECID=44 STAMP=952146606input archived log thread=1 sequence=16 RECID=45 STAMP=952146607input archived log thread=1 sequence=17 RECID=55 STAMP=952147123channel ORA_DISK_1: starting piece 1 at 24-AUG-17channel ORA_DISK_1: finished piece 1 at 24-AUG-17piece handle=/u01/app/cdb/backupset/2017_08_24/o1_mf_annnn_TAG20170824T052759_dswrz9bz_.bkp tag=TAG20170824T052759 comment=NONEchannel ORA_DISK_1: backup set complete, elapsed time: 00:00:01Finished backup at 24-AUG-17Starting backup at 24-AUG-17
using channel ORA_DISK_1channel ORA_DISK_1: starting full datafile backup setchannel ORA_DISK_1: specifying datafile(s) in backup setinput datafile file number=00007 name=/u01/app/cdb/datafile/o1_mf_users_dqlzw5mf_.dbfinput datafile file number=00001 name=/u01/app/cdb/datafile/o1_mf_system_dqlz2fhb_.dbfinput datafile file number=00003 name=/u01/app/cdb/datafile/o1_mf_sysaux_dqlz2fj2_.dbfinput datafile file number=00004 name=/u01/app/cdb/datafile/o1_mf_undotbs1_dqlz2fjo_.dbfinput datafile file number=00013 name=/u01/app/cdb/datafile/o1_mf_abc_dqlz2fk4_.dbfchannel ORA_DISK_1: starting piece 1 at 24-AUG-17channel ORA_DISK_1: finished piece 1 at 24-AUG-17piece handle=/u01/app/cdb/backupset/2017_08_24/o1_mf_nnndf_TAG20170824T052810_dswrzc1c_.bkp tag=TAG20170824T052810 comment=NONEchannel ORA_DISK_1: backup set complete, elapsed time: 00:00:55channel ORA_DISK_1: starting full datafile backup setchannel ORA_DISK_1: specifying datafile(s) in backup setinput datafile file number=00010 name=/u01/app/cdb/52A23D56DF2E3CC1E0535C08DC0A83FF/datafile/o1_mf_sysaux_dqlzwyxk_.dbfinput datafile file number=00009 name=/u01/app/cdb/52A23D56DF2E3CC1E0535C08DC0A83FF/datafile/o1_mf_system_dqlzwyyh_.dbfinput datafile file number=00011 name=/u01/app/cdb/52A23D56DF2E3CC1E0535C08DC0A83FF/datafile/o1_mf_undotbs1_dqlzwyz0_.dbfinput datafile file number=00012 name=/u01/app/cdb/52A23D56DF2E3CC1E0535C08DC0A83FF/datafile/o1_mf_users_dqlzwz06_.dbfchannel ORA_DISK_1: starting piece 1 at 24-AUG-17channel ORA_DISK_1: finished piece 1 at 24-AUG-17piece handle=/u01/app/cdb/52A23D56DF2E3CC1E0535C08DC0A83FF/backupset/2017_08_24/o1_mf_nnndf_TAG20170824T052810_dsws128w_.bkp tag=TAG20170824T052810 comment=NONEchannel ORA_DISK_1: backup set complete, elapsed time: 00:00:25channel ORA_DISK_1: starting full datafile backup setchannel ORA_DISK_1: specifying datafile(s) in backup setinput datafile file number=00006 name=/u01/app/cdb/52A2312195952E57E0535C08DC0A137A/datafile/o1_mf_sysaux_dqlzxqtm_.dbfinput datafile file number=00005 name=/u01/app/cdb/52A2312195952E57E0535C08DC0A137A/datafile/o1_mf_system_dqlzxqvs_.dbfinput datafile file number=00008 name=/u01/app/cdb/52A2312195952E57E0535C08DC0A137A/datafile/o1_mf_undotbs1_dqlzxqwc_.dbfchannel ORA_DISK_1: starting piece 1 at 24-AUG-17channel ORA_DISK_1: finished piece 1 at 24-AUG-17piece handle=/u01/app/cdb/52A2312195952E57E0535C08DC0A137A/backupset/2017_08_24/o1_mf_nnndf_TAG20170824T052810_dsws1v45_.bkp tag=TAG20170824T052810 comment=NONEchannel ORA_DISK_1: backup set complete, elapsed time: 00:00:25channel ORA_DISK_1: starting full datafile backup setchannel ORA_DISK_1: specifying datafile(s) in backup setincluding current control file in backup setincluding current SPFILE in backup setchannel ORA_DISK_1: starting piece 1 at 24-AUG-17channel ORA_DISK_1: finished piece 1 at 24-AUG-17piece handle=/u01/app/cdb/backupset/2017_08_24/o1_mf_ncsnf_TAG20170824T052810_dsws2o9d_.bkp tag=TAG20170824T052810 comment=NONEchannel ORA_DISK_1: backup set complete, elapsed time: 00:00:01Finished backup at 24-AUG-17Starting backup at 24-AUG-17
current log archivedusing channel ORA_DISK_1channel ORA_DISK_1: starting archived log backup setchannel ORA_DISK_1: specifying archived log(s) in backup setinput archived log thread=1 sequence=10 RECID=65 STAMP=952838998 ===================> This is the minimum archivelog till which recovery would make database consistent to open.channel ORA_DISK_1: starting piece 1 at 24-AUG-17channel ORA_DISK_1: finished piece 1 at 24-AUG-17piece handle=/u01/app/cdb/backupset/2017_08_24/o1_mf_annnn_TAG20170824T052958_dsws2pw8_.bkp tag=TAG20170824T052958 comment=NONEchannel ORA_DISK_1: backup set complete, elapsed time: 00:00:01Finished backup at 24-AUG-17
So the last archivelog backed up is sequence 10 and thats the Minimum archivelog till which recovery needs to be done to open the database after restore.
Step 2 :- Do couple of Log switch and delete Couple of Archivelogs
Do couple of Logswitch on the Database
SQL>Alter system switch logfile ; ------------------>4-5 timesArchivelog the logfilesSQL>Alter system archive log current ;SQL> Select * from v$log ;
GROUP# THREAD# SEQUENCE# BYTES BLOCKSIZE MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIM NEXT_CHANGE# NEXT_TIME CON_ID
---------- ---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- --------- ------------ --------- ----------1 1 16 209715200 512 1 NO CURRENT 5431318 24-AUG-17 1.8447E+19 02 1 14 209715200 512 1 YES INACTIVE 5431295 24-AUG-17 5431305 24-AUG-17 03 1 15 209715200 512 1 YES INACTIVE 5431305 24-AUG-17 5431318 24-AUG-17 0Archivelog copies are present under
$ cd /u01/app/cdb/archivelog/2017_08_24
o1_mf_1_8_dswryf57_.arc
o1_mf_1_9_dswryzdm_.arco1_mf_1_10_dsws2plq_.arc o1_mf_1_11_dsws3m5c_.arc o1_mf_1_12_dsws3rom_.arc o1_mf_1_13_dsws3xcf_.arc ----------------------> We delete this using rmo1_mf_1_14_dsws40t3_.arc ----------------------> We delete this using rmo1_mf_1_15_dsws496x_.arc
Now we will delete archivelog sequence 13 and 14 from OS using rm command . (Archivelog sequence 15 is still intact)
So we have All archivelogs until sequence 12 and then Archivelog sequence 15 and Current redo log having Sequence 16.
Step 3 : Restore the database from backup taken in Step 1
Restore the database from the backup taken from step 1
SQL>Shutdown immediate ;
SQL>Startup mount
rman target /
Rman> Restore database ;
Starting restore at 24-AUG-17
using target database control file instead of recovery catalogallocated channel: ORA_DISK_1channel ORA_DISK_1: SID=2543 device type=DISKskipping datafile 5; already restored to file /u01/app/cdb52A2312195952E57E0535C08DC0A137A/datafile/o1_mf_system_dqlzxqvs_.dbf
skipping datafile 6; already restored to file /u01/app/cdb52A2312195952E57E0535C08DC0A137A/datafile/o1_mf_sysaux_dqlzxqtm_.dbfskipping datafile 8; already restored to file /u01/app/cdb52A2312195952E57E0535C08DC0A137A/datafile/o1_mf_undotbs1_dqlzxqwc_.dbfchannel 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/cdbdatafile/o1_mf_system_dqlz2fhb_.dbfchannel ORA_DISK_1: restoring datafile 00003 to /u01/app/cdbdatafile/o1_mf_sysaux_dqlz2fj2_.dbfchannel ORA_DISK_1: restoring datafile 00004 to /u01/app/cdbdatafile/o1_mf_undotbs1_dqlz2fjo_.dbfchannel ORA_DISK_1: restoring datafile 00007 to /u01/app/cdbdatafile/o1_mf_users_dqlzw5mf_.dbfchannel ORA_DISK_1: restoring datafile 00013 to /u01/app/cdbdatafile/o1_mf_abc_dqlz2fk4_.dbfchannel ORA_DISK_1: reading from backup piece /u01/app/cdb/backupset/2017_08_24/o1_mf_nnndf_TAG20170824T052810_dswrzc1c_.bkpchannel ORA_DISK_1: piece handle=/u01/app/cdbbackupset/2017_08_24/o1_mf_nnndf_TAG20170824T052810_dswrzc1c_.bkp tag=TAG20170824T052810channel ORA_DISK_1: restored backup piece 1channel ORA_DISK_1: restore complete, elapsed time: 00:01:15channel ORA_DISK_1: starting datafile backup set restorechannel ORA_DISK_1: specifying datafile(s) to restore from backup setchannel ORA_DISK_1: restoring datafile 00009 to /u01/app/cdb52A23D56DF2E3CC1E0535C08DC0A83FF/datafile/o1_mf_system_dqlzwyyh_.dbfchannel ORA_DISK_1: restoring datafile 00010 to /u01/app/cdb52A23D56DF2E3CC1E0535C08DC0A83FF/datafile/o1_mf_sysaux_dqlzwyxk_.dbfchannel ORA_DISK_1: restoring datafile 00011 to /u01/app/cdb52A23D56DF2E3CC1E0535C08DC0A83FF/datafile/o1_mf_undotbs1_dqlzwyz0_.dbfchannel ORA_DISK_1: restoring datafile 00012 to /u01/app/cdb52A23D56DF2E3CC1E0535C08DC0A83FF/datafile/o1_mf_users_dqlzwz06_.dbfchannel ORA_DISK_1: reading from backup piece /u01/app/cdb/backupset/2017_08_24/o1_mf_nnndf_TAG20170824T052810_dsws128w_.bkpchannel ORA_DISK_1: piece handle=/u01/app/cdb/backupset/2017_08_24/o1_mf_nnndf_TAG20170824T052810_dsws128w_.bkp tag=TAG20170824T052810channel ORA_DISK_1: restored backup piece 1channel ORA_DISK_1: restore complete, elapsed time: 00:00:25Finished restore at 24-AUG-17
Step 4:- Use the new syntax
Rman> List copy of archivelog all ;
List of Archived Log Copies for database with db_unique_name CDB
=====================================================================67 1 12 A 24-AUG-17
Name: /u01/app/cdb/u01/app/cdb/archivelog/2017_08_24/o1_mf_1_12_dsws3rom_./u01/app/cdb68 1 13 A 24-AUG-17
Name: /u01/app/cdb/u01/app/cdb/archivelog/2017_08_24/o1_mf_1_13_dsws3xcf_./u01/app/cdb ===========> Shown Available as it was deleted from OS level and not Rman69 1 14 A 24-AUG-17
Name: /u01/app/cdb/u01/app/cdb/archivelog/2017_08_24/o1_mf_1_14_dsws40t3_./u01/app/cdb ===========> Shown Available as it was deleted from OS level and not Rman70 1 15 A 24-AUG-17
Name: /u01/app/cdb/u01/app/cdb/archivelog/2017_08_24/o1_mf_1_15_dsws496x_./u01/app/cdbRMAN> Recover database until available redo ;
Starting recover at 24-AUG-17
using channel ORA_DISK_1starting media recovery
archived log for thread 1 with sequence 10 is already on disk as file /u01/app/cdb/archivelog/2017_08_24/o1_mf_1_10_dsws2plq_.arc
archived log for thread 1 with sequence 11 is already on disk as file /u01/app/cdb/archivelog/2017_08_24/o1_mf_1_11_dsws3m5c_.arcarchived log for thread 1 with sequence 12 is already on disk as file /u01/app/cdb/archivelog/2017_08_24/o1_mf_1_12_dsws3rom_.arcarchived log for thread 1 with sequence 14 is already on disk as file /u01/app/cdb/onlinelog/o1_mf_2_ds7ofpsb_.logarchived log for thread 1 with sequence 15 is already on disk as file /u01/app/cdb/archivelog/2017_08_24/o1_mf_1_15_dsws496x_.arcarchived log for thread 1 with sequence 16 is already on disk as file /u01/app/cdb/onlinelog/o1_mf_1_ds7ofmw0_.logarchived log file name=/u01/app/cdb/archivelog/2017_08_24/o1_mf_1_10_dsws2plq_.arc thread=1 sequence=10archived log file name=/u01/app/cdb/archivelog/2017_08_24/o1_mf_1_11_dsws3m5c_.arc thread=1 sequence=11archived log file name=/u01/app/cdb/archivelog/2017_08_24/o1_mf_1_12_dsws3rom_.arc thread=1 sequence=12warning: attempt media recovery until thread 1, sequence 13 -----------------------------> Recover done Until sequence 13 (so applies last sequence 12)Finished recover at 24-AUG-17
Here you can see the new syntax check which archivelogs are Physically available. In this case sequence 13 and sequence 14 were missing from OS level so it does a Recovery until Sequence 13 ;
RMAN> alter database open resetlogs;using target database control file instead of recovery catalog
Statement processedRMAN>
The only change is Once the controlfile is restored and database is mounted ensure you Catalog all the backuppieces that are required so restored controlfile is aware about the backuppiece's.
You can use Catalog start with or Catalog backuppiece '<path and name>' command.The steps to restore database and recovery are same as Step A.
About Me
.............................................................................................................................................
● 本文作者:小麦苗,部分内容整理自网络,若有侵权请联系小麦苗删除
● 本文在itpub()、博客园()和个人微信公众号()上有同步更新
● 本文itpub地址:
● 本文博客园地址:
● 本文pdf版、个人简介及小麦苗云盘地址:
● 数据库笔试面试题库及解答:
● DBA宝典今日头条号地址:
.............................................................................................................................................
● QQ群号:230161599(满)、618766405
● 微信群:可加我微信,我拉大家进群,非诚勿扰
● 联系我请加QQ好友(646634621),注明添加缘由
● 于 2018-04-01 06:00 ~ 2018-04-31 24:00 在魔都完成
● 最新修改时间:2018-04-01 06:00 ~ 2018-04-31 24:00
● 文章内容来源于小麦苗的学习笔记,部分整理自网络,若有侵权或不当之处还请谅解
● 版权所有,欢迎分享本文,转载请保留出处
.............................................................................................................................................
● 小麦苗的微店:
● 小麦苗出版的数据库类丛书:
● 小麦苗OCP、OCM、高可用网络班:
.............................................................................................................................................
使用微信客户端扫描下面的二维码来关注小麦苗的微信公众号()及QQ群(DBA宝典),学习最实用的数据库技术。
小麦苗的微信公众号 小麦苗的DBA宝典QQ群2 《DBA笔试面试宝典》读者群 小麦苗的微店
.............................................................................................................................................
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26736162/viewspace-2152715/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/26736162/viewspace-2152715/