資料庫啟動時,涉及到的不一致情況的分析:介質恢復,例項恢復和resetlogs
資料庫啟動時會先判斷是否需要進行介質恢復->resetlogs->例項恢復的過程。
1)介質恢復是根據控制檔案中的資料檔案資訊和資料檔案本身的頭資訊進行比較,從而確實是否需要進行介質恢復
2)resetlogs是根據控制檔案中日誌檔案資訊、日誌檔案本身的頭資訊、資料檔案頭資訊(或控制檔案中資料檔案資訊此時介質恢復已經完成,資料檔案和控制檔案一致)進行比較,從而確定是否需要進行resetlogs的操作
3)例項恢復則是在不需要resetlogs的情況下,根據控制檔案中資料檔案stop scn是否為null,從而確定是否需要進行例項恢復
備份知識的說明:
recover database,從舊的資料檔案恢復到控制檔案中資料檔案的scn位置
recover database using backup control,恢復到最新的log scn位置
完全恢復:所以檔案保持一致
不完全恢復:只要有一個檔案不一致
注意,對於資料檔案頭、控制檔案中資料檔案頭資訊與日誌檔案頭一致,但控制檔案中日誌檔案頭資訊不與之前三者一致也是不完全恢復,雖然資料沒有丟失
這裡我們定義一下最新控制檔案的概念:1)所有檔案全部一致,或2)資料檔案一致(除stop scn),日誌檔案一致
“()”內資料為一致資料
以下對各種啟動情況進行分析:
1)正常關機
此時控制檔案中的資料檔案頭資訊、控制檔案中的資料檔案頭stop scn、資料檔案頭、控制檔案中的日誌檔案頭資訊、日誌檔案頭資訊全部一致,此時可以正常開啟資料庫
2)異常關機
控制檔案中的資料檔案頭資訊與、資料檔案頭一致,所以不需要介質恢復,資料檔案和控制檔案一致
此時控制檔案是最新的,即控制檔案中的日誌檔案頭資訊、日誌檔案頭資訊一致
(控制檔案中資料檔案頭資訊、資料檔案頭資訊)與(控制檔案中的日誌檔案頭資訊、日誌檔案頭資訊)不一致,但此時stop scn=null, 所以不需要resetlogs,最新的控制檔案。
控制檔案中的資料檔案頭stop scn為null,所以需要進行例項恢復,說明資料檔案和日誌檔案不一致
3)舊的資料檔案,最新的控制檔案
控制檔案中的資料檔案頭資訊與、資料檔案頭不一致,所以需要介質恢復,資料檔案和控制檔案不一致
如果:
(1)recover database恢復到當前控制檔案中資料檔案頭資訊的位置(完全恢復)
如果:
(1)
(控制檔案中資料檔案頭資訊、資料檔案頭資訊)與(控制檔案中的日誌檔案頭資訊、日誌檔案頭資訊)一致,所以不需要resetlogs。
控制檔案中的資料檔案頭stop scn不為null,不需要進行例項恢復,資料檔案和日誌檔案一致
(2)
(控制檔案中資料檔案頭資訊、資料檔案頭資訊)與(控制檔案中的日誌檔案頭資訊、日誌檔案頭資訊)不一致,但stop scn為null
控制檔案中的資料檔案頭stop scn為null,需要進行例項恢復,資料檔案和日誌檔案不一致
(2)recover database until ***恢復到之前的某個點(不完全恢復)
(控制檔案中資料檔案頭資訊、資料檔案頭資訊)與(控制檔案中的日誌檔案頭資訊、日誌檔案頭資訊)不一致,且stop scn非null,所以需要resetlogs。同時將stop scn重置為null
4)舊的資料檔案,不是最新的控制檔案
控制檔案中的資料檔案頭資訊與、資料檔案頭不一致,所以需要介質恢復,資料檔案和控制檔案不一致
如果:
(1)recover database恢復到當前控制檔案中資料檔案頭資訊的位置(不完全恢復)
控制檔案中的日誌檔案頭資訊、日誌檔案頭資訊不一致,所以需要resetlogs。同時將stop scn重置為null
(2)recover database using backup controlfile恢復到當前日誌檔案的最大scn(不完全恢復)
(控制檔案中資料檔案頭資訊、資料檔案頭資訊、日誌檔案頭資訊)與 控制檔案中的日誌檔案頭資訊 不一致,所以需要resetlogs。同時將stop scn重置為null。
注意:在恢復過程中,控制檔案中的日誌檔案資訊並不會雖然恢復而進行推進
5)舊的或備份的控制檔案,較新的資料檔案
控制檔案中的資料檔案頭資訊與、資料檔案頭不一致,所以需要介質恢復,資料檔案和控制檔案不一致
recover database using backup controlfile恢復到當前日誌檔案的最大scn(不完全恢復)
(控制檔案中資料檔案頭資訊、資料檔案頭資訊、日誌檔案頭資訊)與 控制檔案中的日誌檔案頭資訊 不一致,所以需要resetlogs。同時將stop scn重置為null。
6)重建控制檔案resetlogs
此時控制檔案中的資料檔案頭資訊scn從當前資料檔案頭scn中獲取,而控制檔案中的日誌檔案頭資訊全零,與日誌檔案不一致,所以可以理解為是舊的控制檔案
(1)(控制檔案中資料檔案頭資訊、資料檔案頭資訊、日誌文頭資訊)一致,可以不用介質恢復
日誌檔案頭和控制檔案中日誌檔案頭資訊不一致,所有需要resetlogs(丟失聯機日誌資料)
(2)也可以用recover database using controlfile 恢復到當前最近日誌的scn位置
日誌檔案頭和控制檔案中日誌檔案頭資訊不一致,所有需要resetlogs(如果聯機日誌完好,資料不會丟失)
7)重建控制檔案noresetlogs
此時控制檔案中的資料檔案頭資訊scn從當前日誌頭scn中獲取current log scn,控制檔案全部scn都設定為最新,包括日誌部分。
(1)如果此時資料檔案過舊,則需要介質恢復recover database,此時所有檔案一致,不需要resetlogs
(2)如果資料檔案已經一致,則可以直接 alter database open。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24104518/viewspace-712569/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle資料庫恢復之resetlogsOracle資料庫
- 【資料庫資料恢復】ASM例項不能掛載的Oracle資料庫資料恢復案例資料庫資料恢復ASMOracle
- 資料庫startup啟動時前滾回滾進行例項恢復的理解資料庫
- 【資料庫資料恢復】Oracle ASM例項無法掛載的資料恢復案例資料庫資料恢復OracleASM
- 3.1.5.7 啟動例項、掛載資料庫並啟動完整的媒體恢復資料庫
- 【資料庫資料恢復】無法啟動MongoDB服務的資料恢復案例資料庫資料恢復MongoDB
- 【資料庫資料恢復】MongoDB資料庫服務啟動失敗的資料恢復案例資料庫資料恢復MongoDB
- PostgreSQL 恢復大法 - 恢復部分資料庫、跳過壞塊、修復無法啟動的資料庫SQL資料庫
- 資料庫資料恢復——Windows無法啟動MongoDB服務的資料恢復案例資料庫資料恢復WindowsMongoDB
- 【資料庫資料恢復】透過恢復NDF檔案修復資料庫的資料恢復過程資料庫資料恢復
- 資料庫資料恢復—MongoDB資料庫檔案丟失,啟動報錯的資料恢復案例資料庫資料恢復MongoDB
- 【資料庫資料恢復】突然斷電造成Syabse資料庫無法啟動的資料恢復案例資料庫資料恢復
- MySQL異常恢復之無主鍵情況下innodb資料恢復的方法MySql資料恢復
- 寶塔資料庫恢復 mysql資料庫丟失恢復 mysql資料庫刪除庫恢復 寶塔mysql資料庫恢復資料庫MySql
- 【資料庫資料恢復】如何恢復Oracle資料庫truncate表的資料資料庫資料恢復Oracle
- 【資料庫資料恢復】windows server下SqlServer資料庫的資料恢復資料庫資料恢復WindowsServerSQL
- 【資料庫資料恢復】SAP資料庫資料恢復案例資料庫資料恢復
- 資料庫資料恢復—無備份,binlog未開啟的Mysql資料庫資料恢復案例資料庫資料恢復MySql
- mysql資料庫恢復一例MySql資料庫
- 伺服器資料恢復—透過拼接資料庫碎片恢復SqlServer資料庫資料的資料恢復案例伺服器資料恢復資料庫SQLServer
- MySQL資料庫的恢復MySql資料庫
- 【資料庫資料恢復】誤truncate table的Oracle資料庫資料恢復方案資料庫資料恢復Oracle
- 【資料庫資料恢復】Oracle資料庫誤truncate table的資料恢復案例資料庫資料恢復Oracle
- 【資料庫資料恢復】Sql Server資料庫資料恢復案例資料庫資料恢復SQLServer
- 資料庫修復資料恢復資料庫資料恢復
- PostgreSql資料庫的備份和恢復SQL資料庫
- PostgreSQL啟動恢復期間,恢復到的時間線的確定SQL
- Sybase ASE資料庫恢復,Sybase資料恢復,資料誤刪除恢復工具READSYBDEVICE資料庫資料恢復dev
- 將RAC備份集恢復為單例項資料庫單例資料庫
- 【資料庫資料恢復】sql server資料庫連線失效的資料恢復案例資料庫資料恢復SQLServer
- 【資料庫資料恢復】MongoDB資料庫檔案損壞的資料恢復案例資料庫資料恢復MongoDB
- 【資料庫資料恢復】SqlServer資料庫無法讀取的資料恢復案例資料庫資料恢復SQLServer
- 資料庫資料恢復-oracle資料庫報錯無法開啟的如何恢復資料?資料庫資料恢復Oracle
- 備份與恢復:Polardb資料庫資料基於時間點恢復資料庫
- 分析針對EFS加密檔案無法開啟的情況資料恢復的解決方式加密資料恢復
- 如何恢復Mysql資料庫的詳細介紹MySql資料庫
- 【伺服器資料恢復】同友儲存無法啟動的資料恢復案例伺服器資料恢復
- 資料庫資料恢復—附加資料庫錯誤823的SQL Server資料恢復案例資料庫資料恢復SQLServer
- 【資料庫資料恢復】ASM磁碟組掉線的Oracle資料庫資料恢復案例資料庫資料恢復ASMOracle