alter database open resetlogs是要打開數據時,重置重做日誌,即將重做日誌的sequence置零,為什麽要重置重做日誌呢?
不完全恢復後,原來的online redo log裏面包含的是未做恢復前的數據,而這些數據對於恢復後的數據庫不再有效,所以數據庫會要求在Open之前先對online redo log的sequence置零。
Resetlogs命令表示一個數據庫邏輯生存期的結束和另一個數據庫邏輯生存期的開始,每次使用Resetlogs命令的時候,SCN不會被重置,不過oracle會重置日誌序列號,而且會重置聯機重做日誌內容。
Oracle把這個數據庫邏輯生存期稱為incarnation
每次使用resetlogs打開數據庫,就會使incarnation + 1,也就是產生一個新的incarnation;
如果想要恢復到之前incarnation的scn/time,就需要先恢復到之前的incarnation;
對於上面的案例,具體就是先要
Reset database to incarnation 2;
再做不完全恢復試試
Tags:
文章來源: