RMAN深入解析之--Incarnation应用(不完全恢复)
来源:互联网 发布:丹尼格兰杰数据 编辑:程序博客网 时间:2024/06/05 00:43
RMAN深入解析之--Incarnation应用(不完全恢复)
案例环境:
操作系统:RedHat EL5
Oracle: Oracle 11gR2
当在做Media Recover的不完全恢复时,通过resetlogs打开库,则Incarnation(数据库对应物)表示这个数据库的特定的逻辑生存期。当作为DBA可能面临这样的还原:需要使用上次执行resetlogs命令打开数据库前生成的一个备份来进行还原数据库,或者可能需要还原到执行上一个resetlogs命令之前的时间点。
如图所示: 数据库的还原线路图
案例1:(不完全恢复1)
1、table被误删除,进行不完全恢复
17:12:11 SYS@ prod>select current_scn from v$database;
CURRENT_SCN
-----------
2123790
17:12:24 SYS@ prod>conn scott/tigerConnected.17:12:43 SCOTT@ prod>select count(*) from emp1; COUNT(*)---------- 28Elapsed: 00:00:00.0517:12:53 SCOTT@ prod>delete from emp1;28 rows deleted.Elapsed: 00:00:00.0817:13:12 SCOTT@ prod>commit;Commit complete.Elapsed: 00:00:00.0417:13:17 SCOTT@ prod>insert into emp1 select * from emp where empno=7788;1 row created.Elapsed: 00:00:00.0417:13:28 SCOTT@ prod>update emp set empno=9999 where empno=7788;1 row updated.Elapsed: 00:00:00.0317:13:43 SCOTT@ prod>commit;Commit complete.Elapsed: 00:00:00.0417:13:45 SCOTT@ prod>select * from emp1; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO---------- ---------- --------- ---------- --------- ---------- ---------- ---------- 7788 SCOTT ANALYST 7566 19-APR-87 3000 20Elapsed: 00:00:00.02
2、执行不完全恢复
RMAN> run {2> set until scn 2123790;3> shutdown immediate;4> startup mount;5> restore database;6> recover database;7> alter database open resetlogs;8> sql'alter system switch logfile';9> }executing command: SET until clauseusing target database control file instead of recovery catalogdatabase closeddatabase dismountedOracle instance shut downconnected to target database (not started)Oracle instance starteddatabase mountedTotal System Global Area 835104768 bytesFixed Size 2217952 bytesVariable Size 775948320 bytesDatabase Buffers 54525952 bytesRedo Buffers 2412544 bytesStarting restore at 15-JUL-14allocated channel: ORA_DISK_1channel ORA_DISK_1: SID=18 device type=DISKchannel 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/prod/system01.dbfchannel ORA_DISK_1: restoring datafile 00002 to /u01/app/oracle/oradata/prod/sysaux01.dbfchannel ORA_DISK_1: restoring datafile 00003 to /u01/app/oracle/oradata/prod/undotbs1.dbfchannel ORA_DISK_1: restoring datafile 00004 to /u01/app/oracle/oradata/prod/users01.dbfchannel ORA_DISK_1: restoring datafile 00005 to /u01/app/oracle/oradata/prod/example01.dbfchannel ORA_DISK_1: restoring datafile 00006 to /u01/app/oracle/oradata/prod/tbs1.dbfchannel ORA_DISK_1: restoring datafile 00007 to /u01/app/oracle/oradata/prod/undotbs2.dbfchannel ORA_DISK_1: restoring datafile 00008 to /u01/app/oracle/oradata/prod/perftbs01.dbfchannel ORA_DISK_1: reading from backup piece /u01/app/oracle/product/11.2.0/db_1/dbs/0lpcfu61_1_1channel ORA_DISK_1: piece handle=/u01/app/oracle/product/11.2.0/db_1/dbs/0lpcfu61_1_1 tag=TAG20140703T171545channel ORA_DISK_1: restored backup piece 1channel ORA_DISK_1: restore complete, elapsed time: 00:01:16Finished restore at 15-JUL-14Starting recover at 15-JUL-14using channel ORA_DISK_1starting media recoveryarchived log for thread 1 with sequence 17 is already on disk as file /dsk4/arch1/arch_1_17_851265252.logarchived log for thread 1 with sequence 18 is already on disk as file /dsk4/arch1/arch_1_18_851265252.logarchived log for thread 1 with sequence 19 is already on disk as file /dsk4/arch1/arch_1_19_851265252.logarchived log file name=/dsk4/arch1/arch_1_17_851265252.log thread=1 sequence=17media recovery complete, elapsed time: 00:00:09Finished recover at 15-JUL-14database opened
3、验证
[oracle@rh6 ~]$ sqlplus '/as sysdba'SQL*Plus: Release 11.2.0.1.0 Production on Tue Jul 15 17:26:10 2014Copyright (c) 1982, 2009, Oracle. All rights reserved.Connected to:Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit ProductionWith the Partitioning, OLAP, Data Mining and Real Application Testing options17:26:10 SYS@ prod>select count(*) from scott.emp1; COUNT(*)---------- 28Elapsed: 00:00:00.0317:27:09 SYS@ prod>
数据被恢复!
5、查看Incarnation
RMAN> list incarnation;using target database control file instead of recovery catalogList of Database IncarnationsDB Key Inc Key DB Name DB ID STATUS Reset SCN Reset Time------- ------- -------- ---------------- --- ---------- ----------1 1 PROD 239333010 PARENT 1 15-AUG-092 2 PROD 239333010 PARENT 945184 30-SEP-133 3 PROD 239333010 PARENT 1087512 18-MAY-144 4 PROD 239333010 PARENT 1857377 26-JUN-145 5 PROD 239333010 CURRENT 2123791 15-JUL-14RMAN> RMAN> list backup of database;List of Backup Sets===================BS Key Type LV Size Device Type Elapsed Time Completion Time------- ---- -- ---------- ----------- ------------ ---------------17 Full 1.13G DISK 00:01:21 03-JUL-14 BP Key: 17 Status: AVAILABLE Compressed: NO Tag: TAG20140703T171545 Piece Name: /u01/app/oracle/product/11.2.0/db_1/dbs/0lpcfu61_1_1 List of Datafiles in backup set 17 File LV Type Ckp SCN Ckp Time Name ---- -- ---- ---------- --------- ---- 1 Full 2066885 03-JUL-14 /u01/app/oracle/oradata/prod/system01.dbf 2 Full 2066885 03-JUL-14 /u01/app/oracle/oradata/prod/sysaux01.dbf 3 Full 2066885 03-JUL-14 /u01/app/oracle/oradata/prod/undotbs1.dbf 4 Full 2066885 03-JUL-14 /u01/app/oracle/oradata/prod/users01.dbf 5 Full 2066885 03-JUL-14 /u01/app/oracle/oradata/prod/example01.dbf 6 Full 2066885 03-JUL-14 /u01/app/oracle/oradata/prod/tbs1.dbf 7 Full 2066885 03-JUL-14 /u01/app/oracle/oradata/prod/undotbs2.dbf 8 Full 2066885 03-JUL-14 /u01/app/oracle/oradata/prod/perftbs01.dbf
案例2:(不完全恢复2)
1、table被误删除,通过不完全恢复进行恢复
17:42:24 SYS@ prod>conn scott/tigerConnected.17:42:28 SCOTT@ prod>insert into emp1 select * from emp where rownum <4;3 rows created.Elapsed: 00:00:00.0517:42:42 SCOTT@ prod>commit;Commit complete.Elapsed: 00:00:00.0117:42:44 SCOTT@ prod>insert into emp1 select * from emp where rownum <5;4 rows created.Elapsed: 00:00:00.0217:42:52 SCOTT@ prod>commit;Commit complete.Elapsed: 00:00:00.0517:42:55 SCOTT@ prod>conn /as sysdbaConnected.
17:43:01 SYS@ prod>select current_scn from v$database;
CURRENT_SCN
-----------
2124840
17:43:13 SYS@ prod>alter system switch logfile;System altered.Elapsed: 00:00:00.1017:43:38 SYS@ prod>conn scott/tigerConnected.17:43:42 SCOTT@ prod>select count(*) from scott.emp1; COUNT(*)---------- 35Elapsed: 00:00:00.0217:43:48 SCOTT@ prod>delete from emp1;35 rows deleted.Elapsed: 00:00:00.0417:43:56 SCOTT@ prod>commit;Commit complete.Elapsed: 00:00:00.0117:43:58 SCOTT@ prod>insert into emp1 select * from emp where empno=7788;1 row created.Elapsed: 00:00:00.0117:44:09 SCOTT@ prod>update emp1 set empno=8888;1 row updated.Elapsed: 00:00:00.0117:44:16 SCOTT@ prod>commit;Commit complete.Elapsed: 00:00:00.0217:44:17 SCOTT@ prod>select * from emp1; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO---------- ---------- --------- ---------- --------- ---------- ---------- ---------- 8888 SCOTT ANALYST 7566 19-APR-87 3000 20Elapsed: 00:00:00.03
2、通过rman做不完全恢复
RMAN> run { set until scn 2124840;2> shutdown immediate;3> 4> startup mount;5> restore database;6> recover database;7> alter database open resetlogs;8> sql'alter system switch logfile';9> }executing command: SET until clausedatabase closeddatabase dismountedOracle instance shut downconnected to target database (not started)Oracle instance starteddatabase mountedTotal System Global Area 835104768 bytesFixed Size 2217952 bytesVariable Size 775948320 bytesDatabase Buffers 54525952 bytesRedo Buffers 2412544 bytesStarting restore at 15-JUL-14allocated channel: ORA_DISK_1channel ORA_DISK_1: SID=18 device type=DISKchannel 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/prod/system01.dbfchannel ORA_DISK_1: restoring datafile 00002 to /u01/app/oracle/oradata/prod/sysaux01.dbfchannel ORA_DISK_1: restoring datafile 00003 to /u01/app/oracle/oradata/prod/undotbs1.dbfchannel ORA_DISK_1: restoring datafile 00004 to /u01/app/oracle/oradata/prod/users01.dbfchannel ORA_DISK_1: restoring datafile 00005 to /u01/app/oracle/oradata/prod/example01.dbfchannel ORA_DISK_1: restoring datafile 00006 to /u01/app/oracle/oradata/prod/tbs1.dbfchannel ORA_DISK_1: restoring datafile 00007 to /u01/app/oracle/oradata/prod/undotbs2.dbfchannel ORA_DISK_1: restoring datafile 00008 to /u01/app/oracle/oradata/prod/perftbs01.dbfchannel ORA_DISK_1: reading from backup piece /u01/app/oracle/product/11.2.0/db_1/dbs/0lpcfu61_1_1channel ORA_DISK_1: piece handle=/u01/app/oracle/product/11.2.0/db_1/dbs/0lpcfu61_1_1 tag=TAG20140703T171545channel ORA_DISK_1: restored backup piece 1channel ORA_DISK_1: restore complete, elapsed time: 00:01:25Finished restore at 15-JUL-14Starting recover at 15-JUL-14using channel ORA_DISK_1starting media recoveryarchived log for thread 1 with sequence 17 is already on disk as file /dsk4/arch1/arch_1_17_851265252.logarchived log for thread 1 with sequence 18 is already on disk as file /dsk4/arch1/arch_1_18_851265252.logarchived log for thread 1 with sequence 19 is already on disk as file /dsk4/arch1/arch_1_19_851265252.logarchived log for thread 1 with sequence 20 is already on disk as file /dsk4/arch1/arch_1_20_851265252.logarchived log for thread 1 with sequence 1 is already on disk as file /dsk4/arch1/arch_1_1_853003284.logarchived log file name=/dsk4/arch1/arch_1_17_851265252.log thread=1 sequence=17archived log file name=/dsk4/arch1/arch_1_18_851265252.log thread=1 sequence=18archived log file name=/dsk4/arch1/arch_1_19_851265252.log thread=1 sequence=19archived log file name=/dsk4/arch1/arch_1_20_851265252.log thread=1 sequence=20media recovery complete, elapsed time: 00:00:10Finished recover at 15-JUL-14database opened
3、验证
[oracle@rh6 ~]$ sqlplus '/as sysdba'SQL*Plus: Release 11.2.0.1.0 Production on Tue Jul 15 17:48:52 2014Copyright (c) 1982, 2009, Oracle. All rights reserved.Connected to:Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit ProductionWith the Partitioning, OLAP, Data Mining and Real Application Testing options17:48:52 SYS@ prod>select count(*) from scott.emp1; COUNT(*)---------- 35Elapsed: 00:00:00.03
数据恢复成功!
4、查看Incarnation:
RMAN> list incarnation;using target database control file instead of recovery catalogList of Database IncarnationsDB Key Inc Key DB Name DB ID STATUS Reset SCN Reset Time------- ------- -------- ---------------- --- ---------- ----------1 1 PROD 239333010 PARENT 1 15-AUG-092 2 PROD 239333010 PARENT 945184 30-SEP-133 3 PROD 239333010 PARENT 1087512 18-MAY-144 4 PROD 239333010 PARENT 1857377 26-JUN-145 5 PROD 239333010 PARENT 2123791 15-JUL-146 6 PROD 239333010 CURRENT 2124841 15-JUL-14
注意:2124841 为当前Incarnation !
案例3:(不完全恢复3)
1、将数据库再次恢复到当前Incarnation前
RMAN> run {
set until scn 2122840;
3> shutdown immediate;
4> startup mount;
5> restore database;
6> recover database;
7> alter database open resetlogs;
8> }
executing command: SET until clause
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of shutdown command at 07/15/2014 17:51:17
RMAN-20208: UNTIL CHANGE is before RESETLOGS change
---恢复出错,不能再恢复到当前Incarnation前 !
2、查看Incarnation
RMAN> list incarnation;List of Database IncarnationsDB Key Inc Key DB Name DB ID STATUS Reset SCN Reset Time------- ------- -------- ---------------- --- ---------- ----------1 1 PROD 239333010 PARENT 1 15-AUG-092 2 PROD 239333010 PARENT 945184 30-SEP-133 3 PROD 239333010 PARENT 1087512 18-MAY-144 4 PROD 239333010 PARENT 1857377 26-JUN-145 5 PROD 239333010 PARENT 2123791 15-JUL-146 6 PROD 239333010 CURRENT 2124841 15-JUL-14
3、重新执行恢复
1、关闭数据库
RMAN> shutdown immediate;database closeddatabase dismountedOracle instance shut down
2、启动数据库到nomount
RMAN> startup mount;connected to target database (not started)Oracle instance starteddatabase mountedTotal System Global Area 835104768 bytesFixed Size 2217952 bytesVariable Size 775948320 bytesDatabase Buffers 54525952 bytesRedo Buffers 2412544 bytes
3、恢复Incarnation到前一个
RMAN> reset database to incarnation 5;
database reset to incarnation 5
RMAN> list incarnation;List of Database IncarnationsDB Key Inc Key DB Name DB ID STATUS Reset SCN Reset Time------- ------- -------- ---------------- --- ---------- ----------1 1 PROD 239333010 PARENT 1 15-AUG-092 2 PROD 239333010 PARENT 945184 30-SEP-133 3 PROD 239333010 PARENT 1087512 18-MAY-144 4 PROD 239333010 PARENT 1857377 26-JUN-145 5 PROD 239333010 CURRENT 2123791 15-JUL-146 6 PROD 239333010 ORPHAN 2124841 15-JUL-14
4、restore数据库
RMAN> restore database until scn 2124835;
Starting restore at 15-JUL-14using target database control file instead of recovery catalogallocated channel: ORA_DISK_1channel ORA_DISK_1: SID=21 device type=DISKchannel 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/prod/system01.dbfchannel ORA_DISK_1: restoring datafile 00002 to /u01/app/oracle/oradata/prod/sysaux01.dbfchannel ORA_DISK_1: restoring datafile 00003 to /u01/app/oracle/oradata/prod/undotbs1.dbfchannel ORA_DISK_1: restoring datafile 00004 to /u01/app/oracle/oradata/prod/users01.dbfchannel ORA_DISK_1: restoring datafile 00005 to /u01/app/oracle/oradata/prod/example01.dbfchannel ORA_DISK_1: restoring datafile 00006 to /u01/app/oracle/oradata/prod/tbs1.dbfchannel ORA_DISK_1: restoring datafile 00007 to /u01/app/oracle/oradata/prod/undotbs2.dbfchannel ORA_DISK_1: restoring datafile 00008 to /u01/app/oracle/oradata/prod/perftbs01.dbfchannel ORA_DISK_1: reading from backup piece /u01/app/oracle/product/11.2.0/db_1/dbs/0lpcfu61_1_1channel ORA_DISK_1: piece handle=/u01/app/oracle/product/11.2.0/db_1/dbs/0lpcfu61_1_1 tag=TAG20140703T171545channel ORA_DISK_1: restored backup piece 1channel ORA_DISK_1: restore complete, elapsed time: 00:01:15Finished restore at 15-JUL-14
5、Recover 数据库
RMAN> recover database until scn 2124835;
Starting recover at 15-JUL-14using channel ORA_DISK_1starting media recoveryarchived log for thread 1 with sequence 17 is already on disk as file /dsk4/arch1/arch_1_17_851265252.logarchived log for thread 1 with sequence 18 is already on disk as file /dsk4/arch1/arch_1_18_851265252.logarchived log for thread 1 with sequence 19 is already on disk as file /dsk4/arch1/arch_1_19_851265252.logarchived log for thread 1 with sequence 20 is already on disk as file /dsk4/arch1/arch_1_20_851265252.logarchived log for thread 1 with sequence 1 is already on disk as file /dsk4/arch1/arch_1_1_853003284.logarchived log file name=/dsk4/arch1/arch_1_17_851265252.log thread=1 sequence=17archived log file name=/dsk4/arch1/arch_1_18_851265252.log thread=1 sequence=18archived log file name=/dsk4/arch1/arch_1_19_851265252.log thread=1 sequence=19archived log file name=/dsk4/arch1/arch_1_20_851265252.log thread=1 sequence=20archived log file name=/dsk4/arch1/arch_1_1_853003284.log thread=1 sequence=1media recovery complete, elapsed time: 00:00:08Finished recover at 15-JUL-14
6、查看Incarnation
RMAN> list incarnation;List of Database IncarnationsDB Key Inc Key DB Name DB ID STATUS Reset SCN Reset Time------- ------- -------- ---------------- --- ---------- ----------1 1 PROD 239333010 PARENT 1 15-AUG-092 2 PROD 239333010 PARENT 945184 30-SEP-133 3 PROD 239333010 PARENT 1087512 18-MAY-144 4 PROD 239333010 PARENT 1857377 26-JUN-145 5 PROD 239333010 CURRENT 2123791 15-JUL-146 6 PROD 239333010 ORPHAN 2124841 15-JUL-14
7、打开数据库(resetlogs)
RMAN> alter database open resetlogs;
database opened
RMAN> list incarnation;List of Database IncarnationsDB Key Inc Key DB Name DB ID STATUS Reset SCN Reset Time------- ------- -------- ---------------- --- ---------- ----------1 1 PROD 239333010 PARENT 1 15-AUG-092 2 PROD 239333010 PARENT 945184 30-SEP-133 3 PROD 239333010 PARENT 1087512 18-MAY-144 4 PROD 239333010 PARENT 1857377 26-JUN-145 5 PROD 239333010 PARENT 2123791 15-JUL-147 7 PROD 239333010 CURRENT 2124836 15-JUL-146 6 PROD 239333010 ORPHAN 2124841 15-JUL-14
8、验证
[oracle@rh6 ~]$ sqlplus '/as sysdba'SQL*Plus: Release 11.2.0.1.0 Production on Tue Jul 15 18:01:11 2014Copyright (c) 1982, 2009, Oracle. All rights reserved.Connected to:Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit ProductionWith the Partitioning, OLAP, Data Mining and Real Application Testing options18:01:11 SYS@ prod>select count(*) from scott.emp1; COUNT(*)---------- 35Elapsed: 00:00:00.05
@至此,数据恢复完成!
本文出自 “天涯客的blog” 博客,请务必保留此出处http://tiany.blog.51cto.com/513694/1439032
- RMAN深入解析之--Incarnation应用(不完全恢复)
- RMAN深入解析之--Incarnation应用(不完全恢复)
- Incarnation不完全恢复
- 基于时间不完全恢复之rman篇
- RMAN深入解析之--BlockRecover恢复坏块
- RMAN的不完全恢复(归档模式)
- RMAN的不完全恢复
- RMAN不完全恢复
- rman实现不完全恢复
- Oracle RMAN -不完全恢复
- RMAN恢复案例之--不完全恢复错误案例
- rman恢复-不完全恢复
- oracle rman 完全恢复与不完全恢复(实例讲解)
- RMAN 备份与恢复深入解析1
- 因incarnation导致恢复时出现RMAN-06026错误
- RMAN深入解析之--内存中的RMAN
- RMAN深入解析之--RMAN服务器进程
- RMAN基于时间点恢复不完全恢复
- 野三坡-百里峡
- 敏捷开发之 12条敏捷原则
- 再好的代码没有电也跑不了
- RMAN深入解析之--BlockRecover恢复坏块
- 构造器初始化_02
- RMAN深入解析之--Incarnation应用(不完全恢复)
- AIX系统小错误之--Crontab故障
- Solaris 10下有趣的FTP错误--ROOT不能访问FTP
- 爬山为什么要穿登山鞋
- Unix系统性能监控工具之--SAR
- Oracle 学习之--Buffer Cache深入解析
- Oracle ASM错误之--ORA-15031、ORA-15014
- Oracle ASM错误之--ORA-15033
- Oracle Study之--Oracle等待事件(1)