http://blog.itpub.net/7259433/viewspace-2146710/
創新互聯建站技術團隊10余年來致力于為客戶提供成都網站設計、成都網站建設、品牌網站制作、成都全網營銷、搜索引擎SEO優化等服務。經過多年發展,公司擁有經驗豐富的技術團隊,先后服務、推廣了上千網站,包括各類中小企業、企事單位、高校等機構單位。
Resetlogs命令表示一個數據庫邏輯生存期的結束和另一個數據庫邏輯生存期的開始,每次使用Resetlogs命令的時候,SCN不會被重置,不過oracle會重置日志序列號,而且會重置聯機重做日志內容。Oracle把這個數據庫邏輯生存期稱為incarnation,每次使用resetlogs打開數據庫,就會使incarnation + 1,也就是產生一個新的incarnation;
如果想要恢復到之前incarnation的scn/time,就需要先恢復到之前的incarnation;
rman recover后,resetlog打開后,如果要重新recover,那么需要 reset database to incarnation ....
--備份恢復
run {
set until scn 2122840;
shutdown immediate;
startup mount;
restore database;
recover database;
alter database open resetlogs;
}
--再次備份恢復
list incarnation;
startup mount;
reset database to incarnation 5;
restore database until scn ;
recover database until scn
incarnation在英文中是“化身”的意思。 那么在oracle中,它又是什么意思呢?有什么作用呢?
Current Incarnation(當前化身):數據庫當前正在使用的化身。
Parent Incarnation(父化身):數據庫當前化身的上一個化身。在父化身以 OPEN RESETLOGS 打開后,就生成當前化身。
Ancestor Incarnation(祖輩化身):在父化身之前,輾轉生成父化身的各個化身。
Direct Ancestral Path(直接祖輩路徑 / 宗譜):由數據庫的起始化身輾轉生成至當前化身的分支路徑,包含數據庫的歷代祖輩及父化身。
Orphan Incarnation(孤兒化身):不在數據庫當前化身的宗譜上的數據庫其它化身。
Orphaned Backups(孤兒備份):不是數據庫當前化身的宗譜上生成的數據庫備份。當前化身不能使
首先,我們可以來看一張圖,來對incarnation有個基本的了解
如圖,SCN1到SCN1000過程中,數據庫屬于incarnation 1,一直發展到橫向的SCN 2000,做了不完全恢復到了SCN 1
000,此時SCN1000之后到橫向的SCN2000的便是(孤兒化身)。而SCN1000向上面的SCN2000發展形成incarnation 2。
incarnation 1便是incarnation 2的(父輩化身)。 而SCN2000往上繼續發展到SCN3000時,又做了不完全恢復到SCN
2000,SCN2000繼續橫向發展到SCN3000,形成incarnation 3.所以incarnation 1便是incarnation 3的(祖輩化身),
incarnation 2便是incarnation 1的(祖輩化身)。
所有incarnation 1到 incarnation 3 的這條灰色軌跡便是Direct Ancestral Path。
Incarnation 1 中 SCN 1000 之后的所有備份 和Incarnation 2 中 SCN 2000 之后的所有備份便是孤兒備份。
自此應該能夠對Incarnation又大概的了解了吧。