//================================================================
//Flashback database to undo an resetlogs operation.
//================================================================
Before performing the flashback, verify that the beginning of the flashback window is earlier than the time of the most recent OPEN RESETLOGS.
SQL> select resetlogs_change# from v$database;
RESETLOGS_CHANGE#
-----------------
294577914
SQL> select oldest_flashback_scn from v$flashback_database_log;
OLDEST_FLASHBACK_SCN
--------------------
294410743
RESETLOGS_CHANGE# > (Larger than) OLDEST_FLASHBACK_SCN, then
Shut down the database, mount it, and re-check the flashback window. If the resetlogs SCN is still within the flashback window, then use this form. of the FLASHBACK DATABASE command:
SQL> select resetlogs_change# from v$database;
RESETLOGS_CHANGE#
-----------------
294577914
SQL> select oldest_flashback_scn from v$flashback_database_log;
OLDEST_FLASHBACK_SCN
--------------------
294410743
Ok, let's do it!
RMAN> FLASHBACK DATABASE TO BEFORE RESETLOGS;
Starting flashback at 2008-04-29 14:02:21
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=154 devtype=DISK
starting media recovery
media recovery complete, elapsed time: 00:00:03
Finished flashback at 2008-04-29 14:02:25
RMAN> list incarnation;
using target database control file instead of recovery catalog
List of Database Incarnations
DB Key Inc Key DB Name DB ID STATUS Reset SCN Reset Time
------- ------- -------- ---------------- --- ---------- ----------
1 1 ORA10GBR 2847344337 PARENT 1 2008-04-17 10:13:37
2 2 ORA10GBR 2847344337 CURRENT 294577914 2008-04-29 13:49:47
SQL> select current_scn from v$database;
CURRENT_SCN
-----------
294577912
SQL> select ora_rowscn, name from flashbackdb;
ORA_ROWSCN NAME
---------- --------------------
294577745 Beijing
294577745 Shanghai
294577745 Hangzhou
//没有理解undo resetlogs到底起了什么作用...(以上信息察看在read only状态下进行)
最后要打开还得open resetlogs,形成了以下的状态:
SQL> select INCARNATION#, STATUS, PRIOR_INCARNATION# from v$database_incarnation;
INCARNATION# STATUS PRIOR_INCARNATION#
------------ ------- ------------------
1 PARENT 0
2 ORPHAN 1
3 CURRENT 1
RMAN> list incarnation;
using target database control file instead of recovery catalog
List of Database Incarnations
DB Key Inc Key DB Name DB ID STATUS Reset SCN Reset Time
------- ------- -------- ---------------- --- ---------- ----------
1 1 ORA10GBR 2847344337 PARENT 1 2008-04-17 10:13:37
3 3 ORA10GBR 2847344337 CURRENT 294577914 2008-04-29 14:08:10
2 2 ORA10GBR 2847344337 ORPHAN 294577914 2008-04-29 13:49:47
终于见识了orphan incarnation了...原来孤儿是这么来的~~~从select结果可以看出,incarnation 2 and incarnation 3有同一个parent(Sibling incarnation), 即incarnation 1.
//=============================================================
//Flashback database to a previous incarnation.
//=============================================================
//Flashback Database To The Right of Open Resetlogs: Example
1. Verify that the flashback logs contain enough information to flash back to that
SCN:
sql> select oldest_flashback_scn from v$flashback_database_log;
2. Determine the target incarnation number for the flashback, that is, the incarnation
key for the parent incarnation:
SQL> select prior_incarnation# from v$database_incarnation where status = 'CURRENT';
3. In RMAN, shut down the database, then mount it:
RMAN> SHUTDOWN IMMEDIATE;
RMAN> STARTUP MOUNT;
4. Set the database incarnation to the parent incarnation:
RMAN> RESET DATABASE TO INCARNATION 1;
5. Run the FLASHBACK DATABASE command:
RMAN> FLASHBACK DATABASE TO SCN 1500;
Once the flashback is complete, you can verify the results, and if successful, open the
database with RESETLOGS.
这个实验没有自己动手做,原因是第一步的时候结果为:
SQL> select oldest_flashback_scn from v$flashback_database_log;
no rows selected
无语了,先记在这,以后有机会来尝试一下。
Conclusion: 关于Oracle 10G Flashback就先总结这么多了,大部分内容都动手做了实验,有了直观的感受。有效部分内容由于种种原因,没有实验,不过也把思路纪录下来了,以后回过头来看的时候也有个系统的思路。Backup and Recovery,任重而道远啊
[The End]
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9765498/viewspace-259931/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/9765498/viewspace-259931/