認識Oracle控制檔案(10g) - final
一,dump控制檔案
dump控制檔案常用兩種方式:
1. 透過event可以dump出控制檔案的內容 。
SQL> alter session set events 'immediate trace name controlf level 12' ;
2. 透過oradebug 匯出控制檔案的內容。
C:\>sqlplus "/as sysdba"
SQL*Plus: Release 10.2.0.1.0 - Production on 星期二 5月 17 11:18:13 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
連線到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining Scoring Engine options
SQL> oradebug setmypid ;
已處理的語句
SQL> oradebug dump controlf 12;
已處理的語句
SQL>
二,控制檔案的內容
以下是從測試資料庫dump出來的控制檔案中的內容。我們詳細來看一看。
控制檔案由兩大部份組成:可重用的部份(reusable record)和不可重用
的部分。可重用的部分的大小可用CONTROL_FILE_RECORD_KEEP_TIME引數來
控制,該引數的預設值為7天,即可重用的部份的內容保留7天,一週之後
這部份的內容可能被覆蓋。可重用的部份是供恢復管理器(RMAN)來使用的,
這部份的內容可以自動擴充套件。 如果可重用部分的空間不足,但是所有的
record都還沒有達到7天,那麼record section就會擴充套件。 如果這個引數設
置為0,可重用部分就不會擴充套件,只要需要records就被重用。 重用部分 如
歸檔日誌檔案,各種備份記錄等。
0. 控制檔案頭
1. DATABASE ENTRY 資料庫項
2. CHECKPOINT PROGRESS RECORDS 檢查點進度記錄
3. EXTENDED DATABASE ENTRY 擴充套件的資料庫項 (Oracle9i才引入)
4. REDO THREAD RECORDS 重做執行緒項
5. LOG FILE RECORDS 日誌檔案記錄
6. DATA FILE RECORDS 資料檔案記錄
7. TEMP FILE RECORDS 臨時檔案記錄 (Oracle9i才引入)
8. TABLESPACE RECORDS 表空間記錄
9. RMAN CONFIGURATION RECORDS RMAN配置記錄 (Oracle9i才引入)
10. FLASHBACK LOGFILE RECORDS 閃回日誌檔案記錄
11. THREAD INSTANCE MAPPING RECORDS 執行緒例項mapping記錄
12. MTTR RECORDS Mean-Time-To-Recover (MTTR)記錄
13. STANDBY DATABASE MAP RECORDS Standby資料庫map記錄
14. RESTORE POINT RECORDS 還原點記錄
15. LOG FILE HISTORY RECORDS 日誌檔案歷史記錄
16. OFFLINE RANGE RECORDS 離線範圍記錄
17. ARCHIVED LOG RECORDS 歸檔日誌記錄
18. BACKUP SET RECORDS 使用RMAN備份資料庫的備份集記錄
19. BACKUP PIECE RECORDS 使用RMAN備份資料庫的備份片記錄
20. BACKUP DATAFILE RECORDS 使用RMAN備份資料庫的備份資料檔案記錄
21. BACKUP LOG RECORDS 使用RMAN備份資料庫的備份歸檔日誌記錄
22. DATAFILE COPY RECORDS 使用RMAN備份資料庫的資料檔案複製記錄
23. BACKUP DATAFILE CORRUPTION RECORDS 使用RMAN備份資料庫的備份資料檔案損壞記錄
24. DATAFILE COPY CORRUPTION RECORDS 使用RMAN備份資料庫的資料檔案複製損壞記錄
25. DELETION RECORDS 使用RMAN備份資料庫的刪除記錄
26. PROXY COPY RECORDS 使用RMAN備份資料庫的代理複製記錄
27. INCARNATION RECORDS (Oracle9i才引入)
28. RMAN STATUS RECORDS RMAN狀態記錄
29. DATAFILE HISTORY RECORDS 資料檔案歷史記錄
30. NORMAL RESTORE POINT RECORDS 正常還原點記錄
按照定義,以上0~14部分是不可重用的部分,15~30是歸檔日誌記錄,各種備份記錄等可重用部分。
---------------
具體例子:
---------------
Dump file d:\oracle\product\10.2.0\admin\test01\udump\test01_ora_3108.trc
Tue May 17 11:09:57 2011
ORACLE V10.2.0.1.0 - Production vsnsta=0
vsnsql=14 vsnxtr=3
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining Scoring Engine options
Windows Server 2003 Version V5.2 Service Pack 1
CPU : 2 - type 586, 1 Physical Cores
Process Affinity : 0x00000000
Memory (Avail/Total): Ph:1068M/2037M, Ph+PgF:2274M/3889M, VA:1268M/2047M
Instance name: test01
Redo thread mounted by this instance: 1
Oracle process number: 21
Windows thread id: 3108, image: ORACLE.EXE (SHAD)
*** 2011-05-17 11:09:57.343
*** SERVICE NAME:(SYS$USERS) 2011-05-17 11:09:57.312
*** SESSION ID:(143.641) 2011-05-17 11:09:57.312
DUMP OF CONTROL FILES, Seq # 924 = 0x39c
V10 STYLE. FILE HEADER:
Compatibility Vsn = 169869568=0xa200100
Db ID=3556425887=0xd3fac09f, Db Name='TEST01'
Activation ID=0=0x0
Control Seq=924=0x39c, File size=450=0x1c2
File Number=0, Blksiz=16384, File Type=1 CONTROL
-- 以上內容說明dbid及dbname, Control Seq=924表示控制檔案的序列號,表示
控制檔案的更新次數,後面是對應的十六進位制,File size=450 表示控制檔案的
大小,是block數量,這裡的block_size=16K, 所以控制檔案大小是7200K, 和查
詢到的控制檔案大小一致。
***************************************************************************
DATABASE ENTRY 資料庫記錄
***************************************************************************
(size = 316, compat size = 316, section max = 1, section in-use = 1,
last-recid= 0, old-recno = 0, last-recno = 0)
(extent = 1, blkno = 1, numrecs = 1)
-- size表示這個section的大小. extent=1表示沒有擴充套件. blkno=1表示控制檔案塊號。
04/28/2011 11:29:06
DB Name "TEST01"
Database flags = 0x00404001 0x00001000
Controlfile Creation Timestamp 04/28/2011 11:29:07
-- 控制檔案建立時間
Incmplt recovery scn: 0x0000.00000000
-- 不完全恢復scn
Resetlogs scn: 0x0000.000dc98f Resetlogs Timestamp 04/27/2011 12:51:15
-- 啟用Resetlogs時的scn值和時間戳
Prior resetlogs scn: 0x0000.000d18da Prior resetlogs Timestamp 04/26/2011 13:35:12
-- 啟用Resetlogs之前的scn值和時間戳
Redo Version: compatible=0xa200100
-- redo 版本相容 10.2.0.1
#Data files = 4, #Online files = 4
-- 共有4個資料檔案,檔案全部處在聯機(online)狀態
Database checkpoint: Thread=1 scn: 0x0000.00111793
-- 資料庫檢查點SCN, 0x0000.00111793是十六進位制,轉化為10進位制就是1120147,
與 select checkpoint_change# from v$database; 查詢結果一致.
Threads: #Enabled=1, #Open=1, Head=1, Tail=1
-- 當前啟用了一個執行緒,也僅僅開啟了這一個執行緒
enabled threads: 01000000 00000000 00000000 00000000 00000000 00000000
.....
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000
Max log members = 3, Max data members = 1
-- 資料庫允許每個日誌組最多有3個log member;
-- 目前還不支援資料檔案的多路複用,因此Max data members的值為1,是為以後升級預留的。
Arch list: Head=3, Tail=3, Force scn: 0x0000.000fecccscn: 0x0000.001115f2
-- 歸檔列表,凡是開始scn (low scn)小於Force scn的redo log都被歸檔。強制scn
-- 是所有重做都被歸檔的scn。
Activation ID: 3557025609
Controlfile Checkpointed at scn: 0x0000.001118f8 05/17/2011 07:43:57
-- 當前控制檔案的檢查點SCN
thread:0 rba:(0x0.0.0)
enabled threads: 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
...
***************************************************************************
CHECKPOINT PROGRESS RECORDS 檢查點進度記錄
***************************************************************************
(size = 8180, compat size = 8180, section max = 11, section in-use = 0,
last-recid= 0, old-recno = 0, last-recno = 0)
(extent = 1, blkno = 2, numrecs = 11)
THREAD #1 - status:0x2 flags:0x0 dirty:51
-- 執行緒資訊,有51個dirty block
low cache rba:(0xa.36aa.0) on disk rba:(0xa.379e.0)
-- low cache rba表示恢復的起點, on disk rba表示恢復時的終點。
-- 類似0xa.36aa.0表示重做日誌序列.資料塊號.偏移量
on disk scn: 0x0000.00113a4d 05/17/2011 11:09:37
resetlogs scn: 0x0000.000dc98f 04/27/2011 12:51:15
heartbeat: 751355397 mount id: 3558756934
-- heartbeat : ckpt每隔3秒會更新控制檔案中的檢查點部分
.....
這一項從Oracle8開始引入在控制檔案當中。這裡主要是記錄了我們增量檢查點的狀態,因為
我們都知道自從checkpoint queue引入了Oracle後,每一個髒資料塊都會被移動到檢查點佇列,
按照Low RBA的順序來排列,那麼在寫出的時候也是按照Low RBA的順序寫出,對塊一級所做的
任何修改並不影響這個塊在checkpoint queue中的low rba位置順序。CKPT程式,按照每3秒的
heartbeat來更新我們的控制檔案,更新的就是這一塊區域。每3秒都是把最低的RBA,也就是
我們low rba的資訊寫入我們的控制檔案中的checkpoint progress records.
***************************************************************************
EXTENDED DATABASE ENTRY
***************************************************************************
(size = 276, compat size = 276, section max = 1, section in-use = 1,
last-recid= 0, old-recno = 0, last-recno = 0)
(extent = 1, blkno = 147, numrecs = 1)
Control AutoBackup date(dd/mm/yyyy)=28/ 4/2011
Next AutoBackup sequence= 0
Database recovery target inc#:1, Last open inc#:1
flg:0x0, flag:0x0
Change tracking state=0, file index=0, checkpoint count=0
-- Block change tracking 設定為disable, 如果是enable, 那麼應該不是0 .
Flashback log count=0, block count=0
-- 閃回日誌量
Oldest guarantee restore point=0
***************************************************************************
REDO THREAD RECORDS redo檢查點資訊
***************************************************************************
(size = 256, compat size = 256, section max = 8, section in-use = 1,
last-recid= 0, old-recno = 0, last-recno = 0)
(extent = 1, blkno = 9, numrecs = 8)
THREAD #1 - status:0xf thread links forward:0 back:0
#logs:3 first:1 last:3 current:3 last used seq#:0xa
-- 有3個日誌檔案組,第一個是1, 最後一個是3,當前log seq#是10 .
enabled at scn: 0x0000.000dc98f 04/27/2011 12:51:15
-- 啟用執行緒1時的scn值
disabled at scn: 0x0000.00000000 01/01/1988 00:00:00
-- 禁用執行緒1時的scn值,因該執行緒目前處於開啟狀態,所以該值為無窮大
opened at 05/17/2011 07:38:56 by instance test01
-- 開啟執行緒時間戳,及被哪個例項開啟
Checkpointed at scn: 0x0000.00111793 05/17/2011 07:38:56
thread:1 rba:(0xa.23a.10)
--- rba:(0xa.23a.10) 表示日誌序列.資料塊號.偏移量
enabled threads: 01000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
....
00000000 00000000 00000000 00000000 00000000 00000000
log history: 6
***************************************************************************
LOG FILE RECORDS redo log file資訊
***************************************************************************
(size = 72, compat size = 72, section max = 16, section in-use = 3,
last-recid= 0, old-recno = 0, last-recno = 0)
(extent = 1, blkno = 10, numrecs = 16)
LOG FILE #1:
(name #3) D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST01\REDO01.LOG
Thread 1 redo log links: forward: 2 backward: 0
-- LOG FILE #1寫滿後,會切換到forward: 2,即切換到LOG FILE #2,這一點
可以透過LOG FILE #1的Next scn: 0x0000.00107564等於LOG FILE #2的
Low scn: 0x0000.00107564 看出。
siz: 0x19000 seq: 0x00000008 hws: 0xa bsz: 512 nab: 0x4ac1 flg: 0x1 dup: 1
Archive links: fwrd: 0 back: 0 Prev scn: 0x0000.000f340f
Low scn: 0x0000.000feccc 05/12/2011 07:55:39
Next scn: 0x0000.00107564 05/13/2011 07:48:16
-- 在一個事務提交後,會在redo log中存在一條redo記錄,同時,系統為其
提供一個最新的SCN,記錄在該條記錄中。如果該條記錄是在redo log被清空
(日誌滿做切換時或發生checkpoint時,所有變化日誌已經被寫入資料檔案中),
則其SCN被記錄為redo log的low SCN。以後在日誌再次被清空前寫入的redo記
錄中SCN則成為Next SCN。
LOG FILE #2:
(name #2) D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST01\REDO02.LOG
Thread 1 redo log links: forward: 3 backward: 1
siz: 0x19000 seq: 0x00000009 hws: 0x6 bsz: 512 nab: 0x6636 flg: 0x1 dup: 1
Archive links: fwrd: 0 back: 0 Prev scn: 0x0000.000feccc
Low scn: 0x0000.00107564 05/13/2011 07:48:16
Next scn: 0x0000.001115f2 05/16/2011 07:37:21
LOG FILE #3:
(name #1) D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST01\REDO03.LOG
Thread 1 redo log links: forward: 0 backward: 2
siz: 0x19000 seq: 0x0000000a hws: 0x5 bsz: 512 nab: 0xffffffff flg: 0x8 dup: 1
-- nab是日誌檔案中LGWR可用的下一個資料塊的地址,如果這個值是無窮大,說明
這個日誌檔案是當前(LGWR正在寫入)的日誌檔案
Archive links: fwrd: 0 back: 0 Prev scn: 0x0000.00107564
Low scn: 0x0000.001115f2 05/16/2011 07:37:21
Next scn: 0xffff.ffffffff 01/01/1988 00:00:00
-- 可以注意到,在current redo中,next scn是無窮大(redo 3是current).
-- 日誌發生切換時會分配一個低scn和一個高scn,低scn就是上一個日誌的
高scn的值,而高scn則設定為無窮大,直到切換到下一個日誌檔案時,再將當
前日誌的高scn設定為下一個日誌檔案的低scn,將下一個日誌檔案的高scn設定
為無窮大。
日誌發生切換後,高scn就從無窮大改為Next scn(下一個scn)的值,該值將
作為切換後的日誌檔案的低scn
***************************************************************************
DATA FILE RECORDS
***************************************************************************
(size = 428, compat size = 428, section max = 100, section in-use = 4,
last-recid= 0, old-recno = 0, last-recno = 0)
(extent = 1, blkno = 11, numrecs = 100)
DATA FILE #1:
(name #7) D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST01\SYSTEM01.DBF
creation size=0 block size=8192 status=0xe head=7 tail=7 dup=1
tablespace 0, index=1 krfil=1 prev_file=0
unrecoverable scn: 0x0000.00000000 01/01/1988 00:00:00
Checkpoint cnt:128 scn: 0x0000.00111793 05/17/2011 07:38:56
-- 對該檔案執行檢查點次數為 128,
Stop scn: 0xffff.ffffffff 05/16/2011 07:39:49
-- 結束scn(Stop scn)是資料檔案的最後一個scn(資料庫正常關閉時會設定這個值),
資料庫正常開啟的狀態,該值為無窮大。 資料庫恢復時要求恢復到Stop scn。
Creation Checkpointed at scn: 0x0000.00000009 08/30/2005 13:50:22
thread:0 rba:(0x0.0.0)
enabled threads: 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
......
00000000 00000000 00000000 00000000 00000000 00000000
Offline scn: 0x0000.00000000 prev_range: 0
-- 檔案聯機時的檢查點scn作為聯機scn儲存在控制檔案中,由於系統表空間的
資料檔案永遠不能離線,所以系統資料檔案的離線scn應該為0x0000.00000000
Online Checkpointed at scn: 0x0000.00000000
thread:0 rba:(0x0.0.0)
enabled threads: 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
......
00000000 00000000 00000000 00000000 00000000 00000000
Hot Backup end marker scn: 0x0000.00000000
-- 熱備份end 記錄scn
aux_file is NOT DEFINED
DATA FILE #2:
(name #6) D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST01\UNDOTBS01.DBF
creation size=0 block size=8192 status=0xe head=6 tail=6 dup=1
tablespace 1, index=2 krfil=2 prev_file=0
unrecoverable scn: 0x0000.00000000 01/01/1988 00:00:00
Checkpoint cnt:91 scn: 0x0000.00111793 05/17/2011 07:38:56
Stop scn: 0xffff.ffffffff 05/16/2011 07:39:49
Creation Checkpointed at scn: 0x0000.00081f74 08/30/2005 17:25:44
thread:0 rba:(0x0.0.0)
enabled threads: 00000000 00000000 00000000 00000000 00000000 00000000
......
00000000 00000000 00000000 00000000 00000000 00000000
Offline scn: 0x0000.00000000 prev_range: 0
Online Checkpointed at scn: 0x0000.00000000
thread:0 rba:(0x0.0.0)
enabled threads: 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
......
00000000 00000000 00000000 00000000 00000000 00000000
Hot Backup end marker scn: 0x0000.00000000
aux_file is NOT DEFINED
DATA FILE #3:
(name #5) D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST01\SYSAUX01.DBF
creation size=0 block size=8192 status=0xe head=5 tail=5 dup=1
tablespace 2, index=3 krfil=3 prev_file=0
unrecoverable scn: 0x0000.00000000 01/01/1988 00:00:00
Checkpoint cnt:128 scn: 0x0000.00111793 05/17/2011 07:38:56
Stop scn: 0xffff.ffffffff 05/16/2011 07:39:49
Creation Checkpointed at scn: 0x0000.000017d4 08/30/2005 13:50:49
thread:0 rba:(0x0.0.0)
enabled threads: 00000000 00000000 00000000 00000000 00000000 00000000
.....
00000000 00000000 00000000 00000000 00000000 00000000
Offline scn: 0x0000.00000000 prev_range: 0
Online Checkpointed at scn: 0x0000.00000000
thread:0 rba:(0x0.0.0)
enabled threads: 00000000 00000000 00000000 00000000 00000000 00000000
.....
00000000 00000000 00000000 00000000 00000000 00000000
Hot Backup end marker scn: 0x0000.00000000
aux_file is NOT DEFINED
DATA FILE #4:
(name #4) D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST01\USERS01.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:127 scn: 0x0000.00111793 05/17/2011 07:38:56
Stop scn: 0xffff.ffffffff 05/16/2011 07:39:49
Creation Checkpointed at scn: 0x0000.00002629 08/30/2005 13:51:05
thread:0 rba:(0x0.0.0)
enabled threads: 00000000 00000000 00000000 00000000 00000000 00000000
......
00000000 00000000 00000000 00000000 00000000 00000000
Offline scn: 0x0000.00000000 prev_range: 0
Online Checkpointed at scn: 0x0000.00000000
thread:0 rba:(0x0.0.0)
enabled threads: 00000000 00000000 00000000 00000000 00000000 00000000
.......
00000000 00000000 00000000 00000000 00000000 00000000
Hot Backup end marker scn: 0x0000.00000000
aux_file is NOT DEFINED
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/35489/viewspace-695669/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 認識Oracle控制檔案(10g) 2 - finalOracle
- 認識Oracle控制檔案(10g) 3 - finalOracle
- 【RAC】Oracle 10g RAC 重建控制檔案Oracle 10g
- 認識Oracle DBFS檔案系統Oracle
- Oracle 控制檔案Oracle
- 重新認識口令檔案
- Oracle重建控制檔案Oracle
- ORACLE 新增控制檔案Oracle
- ORACLE控制檔案管理Oracle
- oracle 重建控制檔案Oracle
- Oracle 控制檔案的重建Oracle
- Oracle控制檔案基礎Oracle
- oracle 關於--控制檔案Oracle
- 增加oracle的控制檔案Oracle
- oracle sqlldr控制檔案模板OracleSQL
- Oracle 控制檔案內容Oracle
- 【ORACLE CONCEPT】控制檔案Oracle
- Oracle OS 認證, 口令檔案Oracle
- 認識 Linux 檔案屬性及檔案配置(轉)Linux
- oracle 10g 以上 遍歷檔案Oracle 10g
- 使用Oracle 10g複製檔案Oracle 10g
- Final Cut Pro中文新手教程 (1) 基礎認識Final Cut Pro
- oracle控制檔案及引數檔案問題Oracle
- Oracle 控制檔案(CONTROLFILE)Oracle
- 關於oracle的控制檔案Oracle
- ORACLE控制檔案的重建 (轉)Oracle
- 【控制檔案】映象控制檔案
- Oracle 10g大檔案表空間Oracle 10g
- oracle中移動控制檔案、資料檔案、日誌檔案Oracle
- VM配置檔案Setting,GridFTP認識FTP
- cloudflare認識1(上傳檔案到桶)Cloud
- Oracle OS認證與口令檔案認證詳解Oracle
- oracle 11g 新增控制檔案Oracle
- oracle控制檔案轉儲說明Oracle
- 重建Oracle資料庫控制檔案Oracle資料庫
- Oracle 控制檔案(CONTROLFILE) -- <2>Oracle
- Oracle 控制檔案(CONTROLFILE)- <1>Oracle
- 認識PGA及PGA_AGGREGATE_TARGET [final]