Oracle ASM How many allocation units per file

eric0435發表於2017-01-13

ASM分配空間的最小量就是一個分配單元AU。預設的AU大小是1MB,但exadata中預設的AU大小是4MB。ASM基於檔案的空間分配是以區為單位的,區是由一個或多個AU組成的。在11.2中,前20000個區只包含1個AU,接下來的20000個區包含4個AU,之後的區包含16個AU。這就叫做可變大小區。在11.1中,區的增長是以1-8-64倍AU的方式增長的。在10g中,沒有可變大小區,所以所有的區大小實際上都是1個AU。

在v$asm_file檢視中可以看到bytes與space列:
.bytes:檔案大小以bytes為單位
.space:分配給檔案的位元組數

在定義方面有細微的差別並且在數量方面有較大差別。

首先查詢關於磁碟組datadg的一些基本資訊,因為磁碟組datadg儲存了大多數資料檔案。在資料庫例項上執行以下查詢:

SQL> select name, group_number, allocation_unit_size/1024/1024 "au size (mb)", type from v$asm_diskgroup where name='DATADG';

NAME                                                         GROUP_NUMBER au size (mb) TYPE
------------------------------------------------------------ ------------ ------------ ------------
DATADG                                                                  3            1 NORMAL

現在建立一個小檔案(不超過60個區)和一個大檔案(超過60個區)

SQL> create tablespace t1 datafile '+datadg' size 10M;

Tablespace created.

SQL> create tablespace t2 datafile '+datadg' size 100M;

Tablespace created.

查詢到所建立的表空間的資料檔案號

SQL> select name,round(bytes/1024/1024) "MB" from v$datafile;

NAME                                                                 MB
------------------------------------------------------------ ----------
+DATADG/jyrac/datafile/system.259.930413057                         760
+DATADG/jyrac/datafile/sysaux.258.930413055                        1630
+DATADG/jyrac/datafile/undotbs1.262.930413057                       100
+DATADG/jyrac/datafile/users.263.930413057                            5
+DATADG/jyrac/datafile/example.260.930413057                        346
+DATADG/jyrac/datafile/undotbs2.261.930413057                       150
+DATADG/jyrac/datafile/test01.dbf                                   100
+DATADG/jyrac/datafile/cs.271.931880499                               1
+DATADG/jyrac/datafile/cs_stripe_coarse.272.931882089                 1
+DATADG/jyrac/datafile/not_important.273.931882831                    1
+TESTDG/jyrac/datafile/t_cs.256.932985243                            50
+DATADG/jyrac/datafile/t1.274.933003755                              10
+DATADG/jyrac/datafile/t2.275.933003775                             100

13 rows selected.

小檔案的ASM檔案號是274,大檔案的ASM檔案號是275。

查詢這兩個檔案的位元組數與空間資訊(AU)

SQL> select file_number, round(bytes/1024/1024) "bytes (au)", round(space/1024/1024) "space (aus)", redundancy
  2  from v$asm_file where file_number in (274, 275) and group_number=3;

FILE_NUMBER bytes (au) space (aus) REDUND
----------- ---------- ----------- ------
        274         10          22 MIRROR
        275        100         205 MIRROR

bytes列顯示了真實的檔案大小。對於小檔案來說,bytes顯示檔案的大小為10個AU=10MB(AU的大小為1MB),而小檔案空間使用了22個AU。10個AU用於真實的資料檔案,1個AU用於檔案頭,並且因為檔案被映象,因此需要雙倍數量的AU,也就是22個AU。對於大檔案來說,bytes顯示檔案的大小為100個AU=100MB(AU的大小為1MB),100個AU用於真實的資料檔案,1個AU用於檔案頭,並且因為檔案被像像,因此需要雙倍數量的AU,也就是202個AU,但這裡大檔案空間使用了205個AU,額外的3個AU是什麼呢?

執行下面的查詢來獲得275號檔案的AU分佈情況:

SQL> select xnum_kffxp "virtual extent", pxn_kffxp "physical extent", disk_kffxp "disk number", au_kffxp "au number"
  2  from x$kffxp where group_kffxp=3 and number_kffxp=275
  3  order by 1,2,3;

virtual extent physical extent disk number  au number
-------------- --------------- ----------- ----------
             0               0           3       1787
             0               1           2       1779
             1               2           1       1779
             1               3           3       1788
             2               4           2       1780
             2               5           3       1789
             3               6           0       1785
             3               7           2       1781
             4               8           3       1790
             4               9           1       1780
             5              10           1       1781
             5              11           2       1782
             6              12           2       1783
             6              13           0       1786
             7              14           0       1787
             7              15           3       1791
             8              16           3       1792
             8              17           0       1788
             9              18           1       1782
             9              19           0       1789
            10              20           2       1784
            10              21           1       1783
            11              22           0       1790
            11              23           1       1784
            12              24           3       1793
            12              25           2       1785
            13              26           1       1785
            13              27           3       1794
            14              28           2       1786
            14              29           3       1795
            15              30           0       1791
            15              31           2       1787
            16              32           3       1796
            16              33           1       1786
            17              34           1       1787
            17              35           2       1788
            18              36           2       1789
            18              37           0       1792
            19              38           0       1793
            19              39           3       1797
            20              40           3       1798
            20              41           0       1794
            21              42           1       1788
            21              43           0       1795
            22              44           2       1790
            22              45           1       1789
            23              46           0       1796
            23              47           1       1790
            24              48           3       1799
            24              49           2       1791
            25              50           1       1791
            25              51           3       1800
            26              52           2       1792
            26              53           3       1801
            27              54           0       1797
            27              55           2       1793
            28              56           3       1802
            28              57           1       1792
            29              58           1       1793
            29              59           2       1794
            30              60           2       1796
            30              61           0       1798
            31              62           0       1799
            31              63           3       1804
            32              64           3       1805
            32              65           0       1800
            33              66           1       1795
            33              67           0       1801
            34              68           2       1797
            34              69           1       1796
            35              70           0       1802
            35              71           1       1797
            36              72           3       1806
            36              73           2       1798
            37              74           1       1798
            37              75           3       1807
            38              76           2       1799
            38              77           3       1808
            39              78           0       1803
            39              79           2       1800
            40              80           3       1809
            40              81           1       1799
            41              82           1       1800
            41              83           2       1801
            42              84           2       1802
            42              85           0       1804
            43              86           0       1805
            43              87           3       1810
            44              88           3       1811
            44              89           0       1806
            45              90           1       1801
            45              91           0       1807
            46              92           2       1803
            46              93           1       1802
            47              94           0       1808
            47              95           1       1803
            48              96           3       1812
            48              97           2       1804
            49              98           1       1804
            49              99           3       1813
            50             100           2       1805
            50             101           3       1814
            51             102           0       1809
            51             103           2       1806
            52             104           3       1815
            52             105           1       1805
            53             106           1       1806
            53             107           2       1807
            54             108           2       1808
            54             109           0       1810
            55             110           0       1811
            55             111           3       1816
            56             112           3       1817
            56             113           0       1812
            57             114           1       1807
            57             115           0       1813
            58             116           2       1809
            58             117           1       1808
            59             118           0       1814
            59             119           1       1809
            60             120           3       1818
            60             121           2       1810
            61             122           1       1810
            61             123           3       1819
            62             124           2       1811
            62             125           3       1820
            63             126           0       1815
            63             127           2       1812
            64             128           3       1821
            64             129           1       1811
            65             130           1       1812
            65             131           2       1813
            66             132           2       1814
            66             133           0       1816
            67             134           0       1817
            67             135           3       1822
            68             136           3       1823
            68             137           0       1818
            69             138           1       1813
            69             139           0       1819
            70             140           2       1815
            70             141           1       1814
            71             142           0       1820
            71             143           1       1815
            72             144           3       1824
            72             145           2       1816
            73             146           1       1816
            73             147           3       1825
            74             148           2       1817
            74             149           3       1826
            75             150           0       1821
            75             151           2       1818
            76             152           3       1827
            76             153           1       1817
            77             154           1       1818
            77             155           2       1819
            78             156           2       1820
            78             157           0       1822
            79             158           0       1823
            79             159           3       1828
            80             160           3       1829
            80             161           0       1824
            81             162           1       1819
            81             163           0       1825
            82             164           2       1821
            82             165           1       1820
            83             166           0       1826
            83             167           1       1821
            84             168           3       1830
            84             169           2       1822
            85             170           1       1822
            85             171           3       1831
            86             172           2       1823
            86             173           3       1832
            87             174           0       1827
            87             175           2       1824
            88             176           3       1833
            88             177           1       1823
            89             178           1       1824
            89             179           2       1825
            90             180           2       1826
            90             181           0       1828
            91             182           0       1829
            91             183           3       1834
            92             184           3       1835
            92             185           0       1830
            93             186           1       1825
            93             187           0       1831
            94             188           2       1827
            94             189           1       1826
            95             190           0       1832
            95             191           1       1827
            96             192           3       1836
            96             193           2       1828
            97             194           1       1828
            97             195           3       1837
            98             196           2       1829
            98             197           3       1838
            99             198           0       1833
            99             199           2       1830
           100             200           3       1839
           100             201           1       1829
    2147483648               0           1       1794
    2147483648               1           2       1795
    2147483648               2           3       1803

205 rows selected.

當檔案被映象時,可以看到每個虛擬區有兩個物理區。但有趣的是最三個AU的虛擬區號為2147483648,有三份映象副本。接下來將使用kfed工具來檢視它們的內容。

查詢磁碟組datadg的磁碟名

SQL> select disk_number, path from v$asm_disk where group_number=3;

DISK_NUMBER PATH
----------- --------------------------------------------------
          0 /dev/raw/raw11
          1 /dev/raw/raw4
          3 /dev/raw/raw10
          2 /dev/raw/raw3


[grid@jyrac1 ~]$ kfed read /dev/raw/raw4 aun=1794 | grep type
kfbh.type:                           12 ; 0x002: KFBTYP_INDIRECT
[grid@jyrac1 ~]$ kfed read /dev/raw/raw3 aun=1795 | grep type
kfbh.type:                           12 ; 0x002: KFBTYP_INDIRECT
[grid@jyrac1 ~]$ kfed read /dev/raw/raw10 aun=1803 | grep type
kfbh.type:                           12 ; 0x002: KFBTYP_INDIRECT

這些額外的AU用來儲存大檔案的ASM後設資料。更確切地說,它們所持有的區對映資訊無法儲存在ASM檔案目錄塊中。檔案目錄需要額外的空間來跟蹤超過60個區的大檔案,因為需要額外的AU。雖然檔案目錄只需要幾個額外的ASM後設資料塊,因為ASM空間分配的最小單元是一個AU,並且因為這是後設資料,AU存在三份映象(雖然是normal冗餘磁碟組),因此對於大檔案來說會分配3個額外的AU。在外部冗餘磁碟組中,對於每個大檔案只有1個額外的AU。

小結:
對於一個檔案ASM磁碟組所需要的空間大小依賴於兩個因素:檔案大小與磁碟的冗餘型別:
在外部冗餘磁碟組中,如果檔案大小超過60個AU,那麼所需要的空間將是檔案大小所佔用的AU,加上檔案頭所佔用的1個AU,加上間接區所佔用的1個AU。
在normal冗餘磁碟組中,如果檔案大小超過60個AU,那麼所需要的空間將是檔案大小所佔用的AU,加上檔案頭所佔用的2個AU,加上間接區所佔用的3個AU。
在high冗餘磁碟組中,如果檔案大小超過60個AU,那麼所需要的空間將是檔案大小所佔用的AU,加上檔案頭所佔用的3個AU,加上間接區所佔用的3個AU。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26015009/viewspace-2132407/,如需轉載,請註明出處,否則將追究法律責任。

相關文章