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 Internal ASM DISK headerASMHeader
- ASM 翻譯系列第三十二彈:ASM INTERNAL Find block in ASMASMBloC
- ASM 翻譯系列第三十五彈:ASM 253號檔案——ASM spfileASM
- ASM 翻譯系列第三十八彈:ASM資料清理ASM
- ASM 翻譯系列第二彈:ASM 12C 版本新特性ASM
- ASM 翻譯系列第九彈:高階知識ASM ToolboxASM
- ASM 翻譯系列第十三彈:ASM 高階知識 - Forcing the issueASM
- ASM 翻譯系列第三十四彈:ASM磁碟組重要屬性介紹ASM
- ASM 翻譯系列第三十一彈:瞭解ASM檔案的空間分配ASM
- ASM 翻譯系列第四十彈:理解ASM中 REQUIRED_MIRROR_FREE_MB和USABLE_FILE_MB的含義ASMUI
- ASM 翻譯系列第一彈:基礎知識 ASM AU,Extents,Mirroring 和 FailgroupsASMAI
- 理解ASM的ExtentASM
- ASM 翻譯系列第三十九彈:物理後設資料AT表ASM
- ASM 翻譯系列第十一彈:高階知識 Offline or drop?ASM
- ASM 翻譯系列第三十六彈:ACFS磁碟組的重平衡操作ASM
- ASM 翻譯系列第三十三彈:REQUIRED_MIRROR_FREE_MB的含義ASMUI
- Oracle ASM File DirectoryOracleASM
- ASM file metadata operationASM
- asm files,asm directories,asm templatesASM
- 檢視ASM的Extent分佈情況ASM
- ASM叢集檔案系統ACFS(ASM Cluster File System)ASM
- 【ASM】ASMLIB 系列ASM
- Oracle ASM Cluster File Systems (ACOracleASM
- Move datafile:From File System to ASMASM
- Move datafile:From ASM to File SystemASM
- Oracle ACFS ( ASM Cluster File System )OracleASM
- 【ASM】如何建立ASM磁碟ASM
- ASM之建立ASM磁碟ASM
- 【ASM學習】ASM 管理ASM
- 【ASM學習】ASM文件ASM
- ASM之建立ASM例項及ASM資料庫ASM資料庫
- 【ASM】ASM基礎知識ASM
- ASM之建立ASM例項ASM
- ASM之ASM相關概念ASM
- ASMASM
- Oracle ASM How many allocation units per fileOracleASM
- 【ORACLE ASM】ASM 支援工具簡介OracleASM
- asm-windows下安裝asmASMWindows