recover database using backup controlfile理解
深入剖析 - Oracle SCN機制詳細解讀
media recovery和instance recovery的差別
https://www.cnblogs.com/Peyton-for-2012/archive/2013/03/01/2938416.html
recover database using backup controlfile
http://blog.chinaunix.net/uid-20274021-id-1969571.html
要理解recover database using backup controlfile,先理解 recover database 也就是說,不加using backup controlfile
的情況。在普通的recover database 或者 recover tablespace, recover datafile時, Oracle會以當前controlfile所紀錄的
SCN為準,利用archive log和 redo log的redo entry, 把相關的datafile 的 block恢復到“當前controlfile所紀錄的SCN”。
而某些情況下,Oracle需要把資料恢復到比當前controlfile所紀錄的SCN還要靠後的位置(比如說,control file是backup
controlfile , 或者 controlfile是根據trace create的。),這時候,就需要用using backup controlfile. 恢復就不會受“當前
controlfile所紀錄的SCN”的限制。這時候的限制就來自於你的語句(until time , until scn),或者可用的archive log(until
cancel) ...
首先這裡我們先介紹四個SCN概念。
1、系統檢查點scn (System Checkpoint SCN)
當一個checkpoint檢查點動作完成後,Oracle就把系統檢查點的SCN儲存到控制檔案中。
select checkpoint_change# from v$database;
2,資料檔案檢查點scn (Datafile Checkpoint SCN)
當一個checkpoint動作完成後,Oracle就把每個資料檔案的Datafile Checkpoint SCN單獨存放在控制檔案中。
select name,checkpoint_change# from v$datafile;
3,啟動scn (Start SCN)
Oracle把這個檢查點的scn儲存在每個資料檔案的檔案頭中,這個值稱為啟動scn,這個SCN用於用於在資料庫例項啟動
時,檢查是否需要執行資料庫恢復media recovery。
select name,checkpoint_change# from v$datafile_header;
4、終止scn (Stop SCN)
每個資料檔案的終止scn都儲存在控制檔案中。這個SCN號用於檢查資料庫啟動過程是否需要做instance recovery。
select name,last_change# from v$datafile;
5.media recovery和instance recovery
1).media recovery是需要利用以前的備份來進行恢復的,而INSTANCE RECOVERY是不需要的。
2).media recovery通常發生在資料庫的資料檔案之類發生損壞,需要利用以前的備份來進行的恢復,需要人工處理。
3).instance recovery則是發生在例項不正常關閉情況下的恢復,是INSTANCE自己來的,不需要人工干預的。
6、在資料庫執行期間的scn值
1).在資料庫開啟並執行之後,控制檔案中的系統檢查點、控制檔案中的資料檔案檢查點scn和每個資料檔案頭中的啟動scn都
是相同的。控制檔案中的每個資料檔案的終止scn都為null.
2).在安全關閉資料庫的過程中,系統會執行一個檢查點動作,這時所有資料檔案的終止scn都會設定成資料檔案頭中的那個
啟動scn的值。
3).在資料庫重新啟動的時候,Oracle將檔案頭中的那個啟動scn與資料庫檔案檢查點scn進行比較,如果這兩個值相互匹配,
oracle接下來還要比較資料檔案頭中的啟動scn和控制檔案中資料檔案的終止scn。如果這兩個值也一致,就意味著所有資料
塊多已經提交,所有對資料庫的修改都沒有在關閉資料庫的過程中丟失,因此這次啟動資料庫的過程也不需要任何恢復操作,
此時資料庫就可以開啟了。當所有的資料庫都開啟之後,儲存在控制檔案中的資料檔案終止scn的值再次被更改為null,這表
示資料檔案已經開啟並能夠正常使用了。
7.SCN與資料庫啟動
在資料庫啟動過程中,當System Checkpoint SCN、Datafile Checkpoint SCN和Start SCN都相同時,資料庫可以正常啟
動,不需要做media recovery。三者當中有一個不同時,則需要做media recovery.如果在啟動的過程中,End SCN為NULL
,則需要做instance recovery。Oracle在啟動過程中首先檢查是否需要media recovery,然後再檢查是否需要instance
reco very。
8.SCN與資料庫關閉
如果資料庫的正常關閉的話,將會觸發一個checkpoint,同時將資料檔案的END SCN設定為相應資料檔案的Start SCN。當
資料庫啟動時,發現它們是一致的,則不需要做instance recovery。在資料庫正常啟動後,ORACLE會將END SCN設定為
NULL.如果資料庫異常關閉的話,則END SCN將為NULL。
9.系統正常關閉:
system scn=datafile scn=start scn=stop scn
1)system scn=datafile scn=start scn,不需要介質恢復
2)stopscn not null,不需要例項恢復
10.系統異常關閉:
system scn=datafile scn=start scn,stop scn null
1)system scn=datafile scn=start scn,不需要介質恢復
2)stopscn null,需要例項恢復
11.舊資料檔案
system scn=datafile scn>start scn,stop scn null/notnull
1)system scn=datafile scn>start scn,需要介質恢復成system scn=datafile scn=start scn
2)stopscn null,需要例項恢復,not null 不需要例項恢復
12.備份控制檔案
system scn=datafile scn<=start scn(當資料檔案為舊的相等),stop scn notnull/null
1)system scn=datafile scn<=start scn,需要使用using backup controlfile介質恢復成system scn=datafile scn=start
scn=current log scn(當前日誌最大SCN)
2)為保證上一次恢復沒有用到log日誌不被使用,必須resetlogs
13.重建noresetlogs控制檔案
控制檔案中 datafile Checkpoint來自Online logs中的Current log頭
current log scn=system scn=datafile scn>=start scn,stop scn not null/null
1)current log scn=system scn=datafile scn>=start scn,需要介質恢復成system scn=datafile scn=start scn=redolog
scn(當前日誌最大SCN),stop scn not null
2)stopscn not null 不需要例項恢復
14.重建resetlogs控制檔案
控制檔案中datafile Checkpoint來自各資料檔案頭。
system scn>=datafile scn=start scn,stop scn not null/null
1)system scn>=datafile scn=start scn,需要使用using backup controlfile介質恢復成system scn=datafile scn=start
scn(當前日誌最大SCN),stop scn not null
2)stop notnull,因為SCN已經為redolog scn,log已經不能使用,必須resetlogs
15.recover database using backup controlfile
如果丟失當前控制檔案,用冷備份的控制檔案恢復的時候,用來告訴oracle,不要以controlfile中的scn作為恢復的終點;
16.recover database until cancel
如果丟失current/active redo的時候,手動指定終點。
17.recover database using backup controlfile until cancel
如果丟失當前controlfile並且current/active redo都丟失,會先去自動應用歸檔日誌,可以實現最大的恢復;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31374736/viewspace-2843133/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- recover database using backup controlfileDatabase
- recover database using backup controlfile與 recover database 的區別Database
- recover database until cancel using backup controlfileDatabase
- Recover database using backup controlfile until cancelDatabase
- recover database using backup controlfile利用archivelog files.DatabaseHive
- recover database using backup control fileDatabase
- oracle create a new database using backup controlfile to traceOracleDatabase
- 冷備控制檔案 & Using Backup Controlfile
- using backup controlfile 和 until cancel區別
- using backup controlfile和 until cancel 區別
- How to restore and recover a database from an RMAN backup_881395.1RESTDatabase
- alter database backup controlfile to trace的問題Database
- alter database backup controlfile to trace的含義Database
- 重建控制檔案--alter database backup controlfile to traceDatabase
- 水煮十四——《using backup controlfile 和 until cancel區別
- recover database until cancel和 recover database區別Database
- Case two -- Recover a datafile in primary site from the backup taken in standby site without using c
- 理解RMAN backup database plus archivelog命令DatabaseHive
- Recover_DatabaseDatabase
- rman recover databaseDatabase
- Recover a Database Having Added a Datafile Since Last Backup (Doc ID 29430.1)DatabaseAST
- Oracle 12C Transport a Database to a Different Platform Using Backup SetsOracleDatabasePlatform
- Case One -- Recover a datafile in primary site from the backup taken in standby site using catalog d
- recover database until timeDatabase
- 關於using backup controlfile(丟失控制檔案和資料檔案)
- 冷備手工完全恢復(recover database,recover tablespace,recover datafile)Database
- 12C Duplicating a Database to a Remote Host by Using Backup-based DuplicationDatabaseREM
- 理解RMAN backup database plus archivelog delete all input命令DatabaseHivedelete
- oracle full database backupOracleDatabase
- Rman backup standby databaseDatabase
- Cold Database backup scriptDatabase
- oracle controlfile理解Oracle
- Restore standby database controlfile in ASM (refreshing standby controlfile)RESTDatabaseASM
- rman restore database(spfile,controlfile, datafile)RESTDatabase
- 12c-RECOVER PLUGGABLE DATABASEDatabase
- Oracle 12c: Recover tables using RMANOracle
- Cold backup and restore the entire databaseRESTDatabase
- rman backup database force 功能Database