案例 - 高速启库到某一有效备份时间点
***************************************************************************************
*案例:快速启库到某一有效备份时间点
*备份时间:15:17
*恢复时间:15:50
*模拟思路:15:50数据库被破坏,为快速启库,
将数据库恢复到最近备份时间点(归档有效),启库
***************************************************************************************
RMAN> backup database;--做一次备份
SQL>alter system switch logfile;--切一次归档
RMAN>list backup of database;--查看备份时间为15:17
--Tag: TAG20140527T151751,备份标签,读出备份时间为2014年5月27日15:17:51
--Elapsed Time: 00:00:59,备份消耗时间为00:00:59
--15:17:51+00:00:59=15:18:50通过备份起始时间、消耗时间计算出备份结束时间约为15:18:50
BS Key Type LV Size Device TypeElapsed TimeCompletion Time
------- ---- -- ---------- ----------- ------------ ---------------
1259 Full 39.16M DISK 00:00:41 27-MAY-14
BP Key: 1259 Status: AVAILABLE Compressed: YES Tag: TAG20140527T151751
Piece Name:/u01/app/oracle/flash_recovery_area/METRO/backupset/2014_05_27/o1_mf_nnndf_TAG20140527T151751_9r8cjk4l_.bkp
List of Datafiles in backup set1259
File LV Type Ckp SCN Ckp Time Name
---- -- ---- ---------- -------------
2 Full 840251 27-MAY-14/u01/app/oracle/oradata/metro/undotbs01.dbf
3 Full 840251 27-MAY-14/u01/app/oracle/oradata/metro/sysaux01.dbf
5 Full 840251 27-MAY-14/u01/app/oracle/oradata/metro/example01.dbf
BS Key Type LV Size Device TypeElapsed TimeCompletion Time
------- ---- -- ---------- ----------- ------------ ---------------
1260 Full 82.20M DISK 00:00:59 27-MAY-14
BP Key: 1260 Status: AVAILABLE Compressed: YES Tag: TAG20140527T151751
Piece Name:/u01/app/oracle/flash_recovery_area/METRO/backupset/2014_05_27/o1_mf_nnndf_TAG20140527T151751_9r8cjjso_.bkp
List of Datafiles in backup set1260
File LV Type Ckp SCN Ckp Time Name
---- -- ---- ---------- -------------
1 Full 840249 27-MAY-14/u01/app/oracle/oradata/metro/system01.dbf
4 Full 840249 27-MAY-14/u01/app/oracle/oradata/metro/users01.dbf
SQL>select SEQUENCE# ,to_char(FIRST_TIME,'yyyy-mm-dd hh:mi:ss'),FIRST_CHANGE#,NEXT_CHANGE# fromv$archived_log;
--只有在备份所耗费时间内的全部归档存在且为可用状态时,才能恢复到数据库备份结束时可以打开的状态,对比时间,锁定到可用归档信息sequence#为752。
--SEQUENCE#:序列号
--FIRST_TIME:归档开始时间
--FIRST_CHANGE#:归档开始时检查点号
--NEXT_CHANGE#:归档结束时检查点号
SEQUENCE# TO_CHAR(FIRST_TIME, FIRST_CHANGE# NEXT_CHANGE#
---------- ------------------- ------------- ------------
......
742 2014-05-27 10:15:32 830392 830401
743 2014-05-27 10:15:34 830401 830423
744 2014-05-27 10:15:57 830423 834578
745 2014-05-27 12:17:02 834578 834812
746 2014-05-27 12:22:34 834812 836728
747 2014-05-27 01:23:32 836728 836911
748 2014-05-27 01:30:10 836911 837020
749 2014-05-27 01:32:45 837020 837091
750 2014-05-27 01:35:17 837091 837140
751 2014-05-27 01:37:02 837140 840364
752 2014-05-27 03:21:30 840364 840491
753 2014-05-27 03:25:22 840491 840504
......
SQL>shutdown immediate;--关库,准备模拟恢复到指定时间点
SQL>startup mount;--将数据库启动到mount
RMAN>restore database;--转储数据库
RMAN>recover database until sequence 753;--备份恢复所依赖的序列号到752(即753-1=752)
SQL> alter database open;--启库
alter database open
*
ERROR at line 1:
ORA-01589: must use RESETLOGS or NORESETLOGS option for database open
SQL> alter database open resetlogs;--根据提示执行resetlogs操作,同步当前日志
SQL> select status,instance_name from v$instance;--数据库打开,查询状态
STATUS INSTANCE_NAME
------------ ----------------
OPEN metro