Oracle檔案頭資訊(zt)
在資料庫open的過程中,Oracle要進行檢查中包含以下:
第一次檢查資料檔案頭中的Checkpoint cnt是否與對應控制檔案中的Checkpoint cnt一致.
如果相等,進行第二次檢查.
第二次檢查資料檔案頭的開始SCN和對應控制檔案中的結束SCN是否一致如果結束SCN等於開始SCN,則不需要對那個檔案進行恢復.
對每個資料檔案都完成檢查後,開啟資料庫.同時將每個資料檔案的結束SCN設定為無窮大.
透過以下過程我們來進一步說明一下這個內容。
我們來看以下來自控制檔案部分(選取一個檔案測試):
DATA FILE #4: (name #4) /opt/oracle/oradata/eygle/eygle01.dbf creation size=0 block size=8192 status=0xe head=4 tail=4 dup=1 tablespace 4, index=4 krfil=4 prev_file=0 unrecoverable scn: 0x0000.00000000 01/01/1988 00:00:00 Checkpoint cnt:58 scn: 0x0000.002ac8ee 08/11/2006 09:48:29 Stop scn: 0x0000.002ac8ee 08/11/2006 09:48:29 Creation Checkpointed at scn: 0x0000.0015078d 06/06/2006 09:41:54 thread:0 rba:(0x0.0.0) ................ aux_file is NOT DEFINED |
這部分中包含的重要資訊有:
檢查點計數: Checkpoint cnt:58
檢查點SCN: scn: 0x0000.002ac8ee 08/11/2006 09:48:29
資料檔案Stop SCN:Stop scn: 0x0000.002ac8ee 08/11/2006 09:48:29
我們再看來自資料檔案頭的資訊:
FILE HEADER: Software vsn=153092096=0x9200000, Compatibility Vsn=134217728=0x8000000 Db ID=1407686520=0x53e79778, Db Name='EYGLE' Activation ID=0=0x0 Control Seq=979=0x3d3, File size=1280=0x500 File Number=4, Blksiz=8192, File Type=3 DATA Tablespace #4 - EYGLE rel_fn:4 Creation at scn: 0x0000.0015078d 06/06/2006 09:41:54 Backup taken at scn: 0x0000.00000000 01/01/1988 00:00:00 thread:0 reset logs count:0x232bee1f scn: 0x0000.0007c781 recovered at 08/10/2006 20:57:53 status:0x0 root dba:0x00000000 chkpt cnt: 58 ctl cnt:57 begin-hot-backup file size: 0 Checkpointed at scn: 0x0000.002ac8ee 08/11/2006 09:48:29 ....................... |
這部分中包含的重要資訊有:
檢查點SCN: Checkpointed at scn: 0x0000.002ac8ee 08/11/2006 09:48:29
檢查點計數: chkpt cnt: 58 ctl cnt:57
這兩者都和控制檔案中所記錄的一致。如果這兩者一致,資料庫啟動時就能透過驗證,啟動資料庫。
那麼如果不一致呢?
Oracle則請求進行恢復。
我們看,從備份中恢復eygle01.dbf檔案.
首先第一部分從控制檔案中獲得的資訊是相同的:
DATA FILE #4: (name #4) /opt/oracle/oradata/eygle/eygle01.dbf creation size=0 block size=8192 status=0xe head=4 tail=4 dup=1 tablespace 4, index=4 krfil=4 prev_file=0 unrecoverable scn: 0x0000.00000000 01/01/1988 00:00:00 Checkpoint cnt:58 scn: 0x0000.002ac8ee 08/11/2006 09:48:29 Stop scn: 0x0000.002ac8ee 08/11/2006 09:48:29 Creation Checkpointed at scn: 0x0000.0015078d 06/06/2006 09:41:54 ................... aux_file is NOT DEFINED |
檢查點計數: Checkpoint cnt:58
檢查點SCN: scn: 0x0000.002ac8ee 08/11/2006 09:48:29
資料檔案Stop SCN:Stop scn: 0x0000.002ac8ee 08/11/2006 09:48:29
而從檔案頭中獲得的備份檔案資訊則是:
FILE HEADER: Software vsn=153092096=0x9200000, Compatibility Vsn=134217728=0x8000000 Db ID=1407686520=0x53e79778, Db Name='EYGLE' Activation ID=0=0x0 Control Seq=973=0x3cd, File size=1280=0x500 File Number=4, Blksiz=8192, File Type=3 DATA Tablespace #4 - EYGLE rel_fn:4 Creation at scn: 0x0000.0015078d 06/06/2006 09:41:54 Backup taken at scn: 0x0000.00000000 01/01/1988 00:00:00 thread:0 reset logs count:0x232bee1f scn: 0x0000.0007c781 recovered at 08/10/2006 20:57:53 status:0x0 root dba:0x00000000 chkpt cnt: 53 ctl cnt:52 begin-hot-backup file size: 0 Checkpointed at scn: 0x0000.002ac5f9 08/10/2006 20:58:21 ................................... |
我們看到此時備份檔案的資訊:
檢查點是:Checkpointed at scn: 0x0000.002ac5f9 08/10/2006 20:58:21
檢查點計數為:chkpt cnt: 53 ctl cnt:52
這兩者不再一致,首先是檢查點技術不一致,當前檔案的chkpt cnt為53,小於控制檔案中記錄的58,Oracle可以判斷檔案是從備份中恢復的,或者檔案故障,需要進行介質恢復。
我們看如果此時我們試圖開啟資料庫,則Oracle提示檔案需要介質恢復:
SQL> alter database open; alter database open * ERROR at line 1: ORA-01113: file 4 needs media recovery ORA-01110: data file 4: '/opt/oracle/oradata/eygle/eygle01.dbf' |
執行恢復:
SQL> recover datafile 4; Media recovery complete. |
我們看看恢復完成之後,控制檔案和資料檔案的變化.
首先看控制檔案的變化:
DATA FILE #4: (name #4) /opt/oracle/oradata/eygle/eygle01.dbf creation size=0 block size=8192 status=0xe head=4 tail=4 dup=1 tablespace 4, index=4 krfil=4 prev_file=0 unrecoverable scn: 0x0000.00000000 01/01/1988 00:00:00 Checkpoint cnt:59 scn: 0x0000.002ac8ee 08/11/2006 09:48:29 Stop scn: 0x0000.002ac8ed 08/11/2006 09:48:29 Creation Checkpointed at scn: 0x0000.0015078d 06/06/2006 09:41:54 ...................... |
檢查點計數: Checkpoint cnt:59
執行了恢復之後,檢查點計數較前增加了1
檢查點SCN: scn: 0x0000.002ac8ee 08/11/2006 09:48:29
資料檔案Stop scn: 0x0000.002ac8ed 08/11/2006 09:48:29
資料檔案Stop scn和資料檔案進行了同步。
資料檔案頭資訊:
FILE HEADER: Software vsn=153092096=0x9200000, Compatibility Vsn=134217728=0x8000000 Db ID=1407686520=0x53e79778, Db Name='EYGLE' Activation ID=0=0x0 Control Seq=983=0x3d7, File size=1280=0x500 File Number=4, Blksiz=8192, File Type=3 DATA Tablespace #4 - EYGLE rel_fn:4 Creation at scn: 0x0000.0015078d 06/06/2006 09:41:54 Backup taken at scn: 0x0000.00000000 01/01/1988 00:00:00 thread:0 reset logs count:0x232bee1f scn: 0x0000.0007c781 recovered at 08/11/2006 10:11:26 status:0x0 root dba:0x00000000 chkpt cnt: 59 ctl cnt:58 begin-hot-backup file size: 0 Checkpointed at scn: 0x0000.002ac8ed 08/11/2006 09:48:29 .......................... |
我們看到此時資料檔案的資訊:
檢查點是:Checkpointed at scn: 0x0000.002ac8ed 08/11/2006 09:48:29
這個檢查點和控制檔案中記錄的stop scn一致,資料庫啟動可以順利進行。
檢查點計數為:chkpt cnt: 59 ctl cnt:58
我們開啟資料庫:
SQL> alter database open; Database altered. SQL> alter session set events 'immediate trace name file_hdrs level 10'; Session altered. |
此時資料庫恢復正常執行。
控制檔案資訊如下:
DATA FILE #4: (name #4) /opt/oracle/oradata/eygle/eygle01.dbf creation size=0 block size=8192 status=0xe head=4 tail=4 dup=1 tablespace 4, index=4 krfil=4 prev_file=0 unrecoverable scn: 0x0000.00000000 01/01/1988 00:00:00 Checkpoint cnt:60 scn: 0x0000.002ac8ef 08/11/2006 10:19:30 Stop scn: 0xffff.ffffffff 08/11/2006 09:48:29 Creation Checkpointed at scn: 0x0000.0015078d 06/06/2006 09:41:54 |
此時stop scn被置為無窮大。
資料檔案頭資訊如下:
FILE HEADER: Software vsn=153092096=0x9200000, Compatibility Vsn=134217728=0x8000000 Db ID=1407686520=0x53e79778, Db Name='EYGLE' Activation ID=0=0x0 Control Seq=984=0x3d8, File size=1280=0x500 File Number=4, Blksiz=8192, File Type=3 DATA Tablespace #4 - EYGLE rel_fn:4 Creation at scn: 0x0000.0015078d 06/06/2006 09:41:54 Backup taken at scn: 0x0000.00000000 01/01/1988 00:00:00 thread:0 reset logs count:0x232bee1f scn: 0x0000.0007c781 recovered at 08/11/2006 10:11:26 status:0x4 root dba:0x00000000 chkpt cnt: 60 ctl cnt:59 begin-hot-backup file size: 0 Checkpointed at scn: 0x0000.002ac8ef 08/11/2006 10:19:30 |
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/35489/viewspace-84691/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 關於控制檔案與資料檔案頭資訊的說明(zt)
- 通過oracle event來dump資料檔案頭資訊Oracle
- oracle_bbed.Datafile.Header_System.資料檔案頭資訊OracleHeader
- idea檔案頭資訊設定Idea
- 檢視BAM檔案頭部資訊
- 抽取exp/expdp匯出檔案頭的資訊
- [zt] oracle跟蹤檔案與跟蹤事件Oracle事件
- oracle跟蹤檔案與跟蹤事件(zt)Oracle事件
- oracle跟蹤檔案和跟蹤事件(zt)Oracle事件
- [Oracle 10g] 大檔案表空間(zt)Oracle 10g
- zt_Oracle資料恢復:資料檔案頭的SCN與時間校驗_file$_scnOracle資料恢復
- 檢測根目錄帶bom頭資訊的檔案
- 關於檔案頭保留塊資訊的儲存探索
- [zt] ORACLE 10g中ASMCMD使用及ASM檔案Oracle 10gASM
- Oracle密碼檔案的建立、使用和維護 (zt)Oracle密碼
- wav檔案的檔案頭
- oracle日誌檔案頭轉儲說明Oracle
- oracle資料檔案頭轉儲說明Oracle
- alter session set events語句dump 控制檔案頭資訊示例Session
- ZT 遷移案例一: oracle 8i 檔案遷移Oracle
- 8.13 標頭檔案剖析:標頭檔案路徑(下)
- 頭寸(position)(zt)
- zt_zfs 檔案系統
- DBWR 寫資料檔案 (zt)
- ORACLE EBS 系統檢視檔案版本資訊Oracle
- 表空間&資料檔案和控制檔案(zt)
- locate標頭檔案和庫檔案
- PHP檔案頭BOM頭問題PHP
- C 標頭檔案
- alter session set events語句dump REDO日誌檔案頭資訊示例Session
- Oracle叢集檔案系統(OCFS2)使用者指南(zt)Oracle
- 將ORACLE資料庫資料檔案遷移到其他目錄(ZT)Oracle資料庫
- Oracle中臨時檔案File#和Db_files關係(zt)Oracle
- 清除Oracle控制檔案中的歸檔資訊v$archived_logOracleHive
- PE檔案檢測DOS頭\NT頭
- #include sys/xxx.h標頭檔案 UNIX標頭檔案
- C 標頭檔案 作用
- rsync 檔案同步工具配置記錄(zt)