對數(shù)據(jù)庫恢復的理解
導讀:如果我們指定以alter database openresetlogs打開數(shù)據(jù)庫,那么我們當前onlineline日志的sequencenumber會歸為1,并且之前的日志信息都會被拋棄。這時就要用到數(shù)據(jù)庫的恢復技術。
以下條件需要使用resetlog
1)在不完全恢復(介質恢復)
2)使用備份控制文件(backup的控制文件一般從日志文件和數(shù)據(jù)庫的信息以及SCN的信息,相比目前的狀態(tài)都已經(jīng)過期了)
使用resetlogs打開數(shù)據(jù)庫(logsequencenumber變?yōu)?)后無必完整地備份一次數(shù)據(jù)庫。而且這一操作會拋棄所有在上一次恢復沒有用到的日志信息,確保不被重新用與恢復。
在重建控制文件的時候需要注意:
create controlfile resetlogs/noresetlogs
1).用noresetlogs重建控制文件時,控制文件中 datafile checkpointscn來自onlinelogs中的Current log頭
2).用resetlogs重建控制文件時,控制文件中datafile CheckpointSCN來自各數(shù)據(jù)文件頭(StartSCN)。
如果system checkpoint scn,datafile checkpoint scn,startscn不全相等,需要介質恢復.
如果stopscn null需要實例恢復
小小的總結一下各種情況:
1、系統(tǒng)正常關閉:
會使得:system checkpoint scn = datafile checkpoint scn = start scn=stop scn
1)system checkpoint scn = datafile checkpoint scn =startscn,不需要介質恢復
2)stop scn is not null = start SCN,不需要實例恢復
2、系統(tǒng)異常關閉:
會使得:system checkpoint scn = datafile checkpoint scn = start scn=stop scn
1)system checkpoint scn = datafile checkpoint scn =startscn,不需要介質恢復
2)stop scn is null,需要實例恢復
【編輯推薦】