http://www.2cto.com/database/201107/96545.html
当进行不完全恢复后,可能没达到恢复的要求,这个时候数据库已经被resetlogs方式打开过了,如果在进行不完全恢复前没有对数据库进行全库备份,这个时候又想恢复上一个incarnation的某些数据,在这种场景下就需要进行incarnation穿越,下面来演示下这个场景!一:准备实验基础数据1. SQL> create table t043_incarnation(a varchar2(20)) tablespace example; 2. Table created. 3. 4. SQL> insert into t043_incarnation values ('corss successful'); 5. 1 row created. 6. 7. SQL> commit; 8. Commit complete. 9. 10. SQL> create table t043_other (a number) tablespace example; 11. Table created. 12. 13. SQL> insert into t043_other values (1); 14. 1 row created. 15. 16. SQL> insert into t043_other values (2); 17. 1 row created. 18. 19. SQL> commit; 20. Commit complete. 21. 22. SQL> alter system switch logfile; 23. System altered. 24. 25. SQL> insert into t043_other values (3); 26. 1 row created. 27. 28. SQL> alter system switch logfile; 29. System altered. 30. 31. SQL> select sysdate from dual; 32. 33. SYSDATE 34. ------------------- 35. 2011-07-17-21:22:30 36. 37. SQL> truncate table t043_incarnation; 38. Table truncated. 39. 40. SQL> archive log list; 41. Database log mode Archive Mode 42. Automatic archival Enabled 43. Archive destination USE_DB_RECOVERY_FILE_DEST 44. Oldest online log sequence 64 45. Next log sequence to archive 66 46. Current log sequence 66 47. SQL> insert into t043_other values (4); 48. 1 row created. 49. 50. SQL> commit; 51. Commit complete. 52. 53. SQL> alter system switch logfile; 54. System altered. 55. 56. SQL> insert into t043_other values (5); 57. 1 row created. 58. 59. SQL> alter system switch logfile; 60. System altered. 61. 62. SQL> commit; 63. Commit complete. 64. 65. SQL> alter system switch logfile; 66. System altered.二:删除全部控制文件第67号归档日志文件,这样进行恢复的时候就必须进行不完全恢复1. [oracle@rhel6 2011_07_17]$ pwd 2. /u01/app/flash_recovery_area/ORA10G/archivelog/2011_07_17 3. [oracle@rhel6 2011_07_17]$ rm -i o1_mf_1_67_725rmcx1_.arc 4. rm: remove regular file `o1_mf_1_67_725rmcx1_.arc'? y 5. [oracle@rhel6 2011_07_17]$ rm -rf /u01/app/oradata/ora10g/control0* 6. 7. SQL> shutdown abort; 8. ORACLE instance shut down. 9. SQL> startup 10. ORACLE instance started. 11. 12. Total System Global Area 629145600 bytes 13. Fixed Size 2022824 bytes 14. Variable Size 205521496 bytes 15. Database Buffers 415236096 bytes 16. Redo Buffers 6365184 bytes 17. ORA-00205: error in identifying control file, check alert log for more info三:使用控制文件二进制自动备份进行恢复,也可以使用trace脚本,由于归档日志丢失的原因,都需要进行不完全恢复1. RMAN> restore controlfile from autobackup; 2. Starting restore at 2011-07-17-21:28:29 3. using target database control file instead of recovery catalog 4. allocated channel: ORA_DISK_1 5. channel ORA_DISK_1: sid=154 devtype=DISK6. 7. recovery area destination: /u01/app/flash_recovery_area 8. database name (or database unique name) used for search: ORA10G 9. channel ORA_DISK_1: autobackup found in the recovery area 10. channel ORA_DISK_1: autobackup found: /u01/app/flash_recovery_area/ORA10G/autobackup/2011_07_17/o1_mf_s_756768121_725rhvkf_.bkp 11. channel ORA_DISK_1: control file restore from autobackup complete 12. output filename=/u01/app/oradata/ora10g/control01.ctl 13. output filename=/u01/app/oradata/ora10g/control02.ctl 14. output filename=/u01/app/oradata/ora10g/control03.ctl 15. Finished restore at 2011-07-17-21:28:34 16. 17. RMAN> alter database mount; 18. database mounted 19. released channel: ORA_DISK_1 20. 21. RMAN> list incarnation; 22. 23. List of Database Incarnations 24. DB Key Inc Key DB Name DB ID STATUS Reset SCN Reset Time 25. ------- ------- -------- ---------------- --- ---------- ---------- 26. 1 1 ORA10G 4061806388 PARENT 1 2005-10-22-21:44:08 27. 2 2 ORA10G 4061806388 PARENT 525876 2011-02-12-18:37:43 28. 3 3 ORA10G 4061806388 PARENT 7781117 2011-05-23-13:24:09 29. 4 4 ORA10G 4061806388 CURRENT 7787669 2011-05-23-15:51:11 30. 31. 32. RMAN> restore database; 33. Starting restore at 2011-07-17-21:29:21 34. Starting implicit crosscheck backup at 2011-07-17-21:29:21 35. allocated channel: ORA_DISK_1 36. channel ORA_DISK_1: sid=154 devtype=DISK37. Crosschecked 1 objects 38. ——————————其他输出省略—————————— 39. 40. SQL> recover database using backup controlfile until cancel; 41. ORA-00279: change 9022073 generated at 07/17/2011 21:20:26 needed for thread 1 42. ORA-00289: suggestion : 43. /u01/app/flash_recovery_area/ORA10G/archivelog/2011_07_17/o1_mf_1_64_%u_.arc 44. ORA-00280: change 9022073 for thread 1 is in sequence #64 45. 46. Specify log: {=suggested | filename | AUTO | CANCEL} 47. 48. ORA-00279: change 9022129 generated at 07/17/2011 21:21:35 needed for thread 1 49. ORA-00289: suggestion : 50. /u01/app/flash_recovery_area/ORA10G/archivelog/2011_07_17/o1_mf_1_65_%u_.arc 51. ORA-00280: change 9022129 for thread 1 is in sequence #65 52. ORA-00278: log file 53. '/u01/app/flash_recovery_area/ORA10G/archivelog/2011_07_17/o1_mf_1_64_725rh0wy_. 54. arc' no longer needed for this recovery 55. 56. Specify log: {=suggested | filename | AUTO | CANCEL} 57. 58. ORA-00279: change 9022148 generated at 07/17/2011 21:22:01 needed for thread 1 59. ORA-00289: suggestion : 60. /u01/app/flash_recovery_area/ORA10G/archivelog/2011_07_17/o1_mf_1_66_%u_.arc 61. ORA-00280: change 9022148 for thread 1 is in sequence #66 62. ORA-00278: log file 63. '/u01/app/flash_recovery_area/ORA10G/archivelog/2011_07_17/o1_mf_1_65_725rhtt9_. 64. arc' no longer needed for this recovery 65. 66. Specify log: {=suggested | filename | AUTO | CANCEL} 67. 68. ORA-00279: change 9022403 generated at 07/17/2011 21:23:46 needed for thread 1 69. ORA-00289: suggestion : 70. /u01/app/flash_recovery_area/ORA10G/archivelog/2011_07_17/o1_mf_1_67_%u_.arc 71. ORA-00280: change 9022403 for thread 1 is in sequence #67 72. ORA-00278: log file 73. '/u01/app/flash_recovery_area/ORA10G/archivelog/2011_07_17/o1_mf_1_66_725rm33n_. 74. arc' no longer needed for this recovery 75. 76. Specify log: {=suggested | filename | AUTO | CANCEL} 77. 78. ORA-00308: cannot open archived log 79. '/u01/app/flash_recovery_area/ORA10G/archivelog/2011_07_17/o1_mf_1_67_%u_.arc' 80. ORA-27037: unable to obtain file status 81. Linux-x86_64 Error: 2: No such file or directory 82. Additional information: 3 83. 84. SQL> recover database using backup controlfile until cancel; 85. ORA-00279: change 9022403 generated at 07/17/2011 21:23:46 needed for thread 1 86. ORA-00289: suggestion : 87. /u01/app/flash_recovery_area/ORA10G/archivelog/2011_07_17/o1_mf_1_67_%u_.arc 88. ORA-00280: change 9022403 for thread 1 is in sequence #67 89. 90. Specify log: {=suggested | filename | AUTO | CANCEL} 91. cancel 92. Media recovery cancelled.四:恢复完后打开数据库,发现之前被truncate的表没有被成功恢复,这个时候就需要进行incarnation穿越1. SQL> alter database open resetlogs; 2. Database altered. 3. 4. SQL> select * from t043_other; 5. 6. A 7. ---------- 8. 1 9. 2 10. 3 11. 4 12. 13. 14. SQL> select * from t043_incarnation; 15. no rows selected 五:关闭数据库后将数据库启动在mount状态,利用rman进行incarnation穿越,恢复t043_incarnation表1. SQL> shutdown immediate 2. Database closed. 3. Database dismounted. 4. ORACLE instance shut down. 5. SQL> startup mount 6. ORACLE instance started. 7. 8. Total System Global Area 629145600 bytes 9. Fixed Size 2022824 bytes 10. Variable Size 209715800 bytes 11. Database Buffers 411041792 bytes 12. Redo Buffers 6365184 bytes 13. Database mounted. 14. 15. [oracle@rhel6 ~]$ rman target / 16. Recovery Manager: Release 10.2.0.1.0 - Production on Sun Jul 17 21:34:14 2011 17. Copyright (c) 1982, 2005, Oracle. All rights reserved. 18. connected to target database: ORA10G (DBID=4061806388) 19. 20. RMAN> list incarnation; 21. 22. using target database control file instead of recovery catalog 23. 24. List of Database Incarnations 25. DB Key Inc Key DB Name DB ID STATUS Reset SCN Reset Time 26. ------- ------- -------- ---------------- --- ---------- ---------- 27. 1 1 ORA10G 4061806388 PARENT 1 2005-10-22-21:44:08 28. 2 2 ORA10G 4061806388 PARENT 525876 2011-02-12-18:37:43 29. 3 3 ORA10G 4061806388 PARENT 7781117 2011-05-23-13:24:09
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/90618/viewspace-763189/
,如需转载,请注明出处,否则将追究法律责任。