ASM 翻譯系列第八彈:ASM Internal ASM file extent map
譯者: 莊培培
稽核: 魏興華
當ASM建立一個檔案時(例如資料庫例項要求建立一個資料檔案),它會以extent為單位分配空間。一旦檔案被建立,ASM會傳遞extent對映表給資料庫例項,後續資料庫例項能在不和ASM例項互動的情況下訪問這個檔案。如果一個檔案的extent需要被重新定位,比如磁碟組進行rebalance操作,ASM會告知資料庫例項關於extent對映表的變更。
可以透過查詢ASM例項的X$KFFXP檢視來獲取ASM檔案extent對映表的內容。X$KFFXP檢視中的每一行對應著所有處於mount狀態磁碟組中每一個檔案的每一個物理extent的資訊。
譯者注:1)網路上有不少關於X$KFFXP檢視的解釋,有些資訊過於陳舊,需要指出,它記錄的每一條記錄都代表的是物理extent的資訊,而非AU資訊,X$KFFXP檢視的SIZE_KFFXP欄位,代表了此extent是由幾個AU組成的,在啟用11G可變extent特性後會出現SIZE_KFFXP大於1的情況,具體更多資訊參考本系列的第一篇文章。2)X$KFFXP這裡翻譯成了X$KFFXP檢視,只是為了便於理解,它的本質是一個記憶體的資料結構(fixed table),其資料不在buffer_cache中。
X$KFFXP檢視的重要欄位包括:
GROUP_KFFXP 磁碟組編號。注意磁碟組編號不是恆久不變的,每次磁碟組被mount時都可能會不一樣。等同於V$ASM_DISKGROUP.GROUP_NUMBER欄位。
NUMBER_KFFXP 檔案序號。等同於 V$ASM_FILE.FILE_NUMBER欄位。 注意,ASM的檔案序號不同於資料庫內的資料檔案序號,不要把兩個概念搞混了。小於256的ASM檔案序號是保留給ASM後設資料檔案使用的。
INCARN_KFFXP 檔案版本號。當一個ASM檔案序號被一個新檔案重用時,檔案版本號會發生改變。等同於V$ASM_FILE.INCARNATION欄位。注意,ASM檔案是以檔案序號.版本號的方式結尾。
XNUM_KFFXP 虛擬extent序號。external冗餘磁碟組的虛擬extent序號與物理extent序號一致。 normal冗餘磁碟組的虛擬extent序號透過將物理extent序號除於2得到.high冗餘磁碟組的虛擬extent序號透過將物理extent序號除於3得到.
PXN_KFFXP 物理extent序號。一個檔案的物理extent序號都以數字0開始,順序遞增。
LXN_KFFXP 虛擬extent中物理extent的序號。 0 為 primary extent, 1 為 secondary extent, 2 為 third copy of the extent。
DISK_KFFXP 物理磁碟序號。等同於V$ASM_DISK.DISK_NUMBER。
AU_KFFXP AU序號,磁碟維度的AU編號,每個磁碟從0開始。
在ASM例項中透過以下查詢,能夠看出磁碟組3內的ASM後設資料檔案的檔案序號,名字和AU數量。
$ sqlplus / as sysasm SQL> select NUMBER_KFFXP "ASM file number", DECODE (NUMBER_KFFXP, 1, 'File directory', 2, 'Disk directory', 3, 'Active change directory', 4, 'Continuing operations directory', 5, 'Template directory', 6, 'Alias directory', 7, 'ADVM file directory', 8, 'Disk free space directory', 9, 'Attributes directory', 10, 'ASM User directory', 11, 'ASM user group directory', 12, 'Staleness directory', 253, 'spfile for ASM instance', 254, 'Stale bit map space registry ', 255, 'Oracle Cluster Repository registry') "ASM metadata file name", count(AU_KFFXP) "Allocation units" from X$KFFXP where GROUP_KFFXP=3 and NUMBER_KFFXP<256 group by NUMBER_KFFXP order by 1; ASM file number ASM metadata file name Allocation units --------------- ---------------------------------- ---------------- 1 File directory 3 2 Disk directory 3 3 Active change directory 69 4 Continuing operations directory 6 5 Template directory 3 6 Alias directory 3 8 Disk free space directory 3 9 Attributes directory 3 12 Staleness directory 3 253 spfile for ASM instance 2 254 Stale bit map space registry 3 255 Oracle Cluster Repository registry 135 12 rows selected. SQL>
透過以上查詢結果可以發現,這個磁碟組並沒有包含所有型別的後設資料檔案(例如第十號和第十一號檔案)。一個有意思的事情是,除了ASM例項的spfile,每個檔案至少佔用3個AU,對於這一點更多詳細資訊我們會在其他章節介紹。
我們再來以一個資料庫控制檔案為例檢視下它的extent對映表
第1步,查詢DATA磁碟組內所有的資料庫控制檔案(以Grid所屬的OS使用者身份執行asmcmd命令)
$ asmcmd find --type controlfile +DATA "*" +DATA/DBM/CONTROLFILE/Current.256.738247649 +DATA/BR/CONTROLFILE/Current.299.748434267 $
第2步,檢查DATA磁碟組的磁碟組序號(連線到asm例項)
$ sqlplus / as sysasm SQL> select GROUP_NUMBER from V$ASM_DISKGROUP where NAME='DATA'; GROUP_NUMBER ------------ 1 SQL>
第3步,檢查磁碟組1中ASM 256號檔案(+DATA/DBM/CONTROLFILE/Current.256.738247649)的extent對映表
SQL> select XNUM_KFFXP "Virtual extent", PXN_KFFXP "Physical extent", LXN_KFFXP "Extent copy", DISK_KFFXP "Disk", AU_KFFXP "Allocation unit" from X$KFFXP where GROUP_KFFXP=1 and NUMBER_KFFXP=256 and XNUM_KFFXP<>2147483648 order by 1,2; Virtual extent Physical extent Extent copy Disk Allocation unit -------------- --------------- ----------- ---------- --------------- 0 0 0 20 5 0 1 1 29 1903 0 2 2 6 82 1 3 0 22 6 1 4 1 31 8 1 5 2 9 3 2 6 0 30 8 2 7 1 23 1907 2 8 2 7 63 3 9 0 26 2 3 10 1 16 1904 3 11 2 6 4 ... 39 117 0 25 1913 39 118 1 15 1906 39 119 2 3 27 120 rows selected. SQL>
以上輸出可以看出這個控制檔案是三路映象,每個虛擬extent對應三個物理extent,還可以看出這個檔案每個AU的實際位置。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28218939/viewspace-2121262/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ASM 翻譯系列第十三彈:ASM 高階知識 - Forcing the issueASM
- ASM 翻譯系列第十一彈:高階知識 Offline or drop?ASM
- ASM叢集檔案系統ACFS(ASM Cluster File System)ASM
- Oracle ASM Cluster File Systems (ACOracleASM
- 【ASM】Oracle asm刪除磁碟組注意事項ASMOracle
- 【ASM】ASM磁碟頭被重寫,如何修復ASM
- goldengate + asm + racGoASM
- gnu inline asminlineASM
- 【ASM】ASM啟動無法找到spfile問題原因ASM
- 從定位資料塊所在ASM磁碟到ASM strippingASM
- Oracle 12C Database File Mapping for Oracle ASM FilesOracleDatabaseAPPASM
- ASM Metadata Dump UtilityASM
- ASM磁碟組限制ASM
- 4.5.1.1 srvctl add asmASM
- Android Transform + ASM 初探AndroidORMASM
- RAC+ASM+DATAGUARDASM
- ASM Fast Mirror ResyncASMAST
- ASM(Automatic Storage Management)ASM
- ASM重新命名包含OCR/vote file的磁碟組ASM
- 【ASM】asm常用命令及主要功能介紹ASM
- Oracle ASM神書《撥雲見日 解密Oracle ASM核心》出版了OracleASM解密
- 【ASM】Oracle asm磁碟被格式化,如何掛載該磁碟組ASMOracle
- 【ASM】Oracle RAC css啟動報錯"Duplicate voting file found"ASMOracleCSS
- ASM下遷移spfileASM
- 遷移ASM磁碟組ASM
- Java ASM學習(2)JavaASM
- Automatic Storage Management (ASM)(轉)ASM
- Multi-path handling for asmASM
- Oracle ASM擴容(NFS)OracleASMNFS
- 【ASM】ASM資料檔案和OS檔案(FILESYSTEM)轉移方法總結ASM
- 【ASM】ORA-27504 ORA-27300 ORA-27303 while starting ASM (Doc ID 2281441.1)ASMWhile
- Oracle ASM AMDU工具的使用OracleASM
- 遇到ASM的兩個BUGASM
- 【RMAN】RMAN備份至ASMASM
- 【RAC】asm_diskgroups 引數ASM
- 【32asm】04 - 重定位ASM
- Oracle:ASM & 密碼檔案OracleASM密碼
- 【ASM】RAC19C因引數設定不當,asm無法啟動ASM
- ASM單例項安裝後,需要手動設定ASM的引數檔案ASM單例