Oracle ASM How many allocation units per file
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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- sys.allocation_units與sys.system_internals_allocation_units的差別
- Oracle ASM Allocation TableOracleASM
- Oracle ASM File DirectoryOracleASM
- How to copy a datafile from ASM to a file system not using RMANASM
- Oracle ASM Cluster File Systems (ACOracleASM
- Oracle ACFS ( ASM Cluster File System )OracleASM
- How To Efficiently Drop A Table With Many Extents
- coca How many 搭配 大寫
- How to Monitor UGA, PGA and Cursor Usage Per SessionSession
- [doc]How To Efficiently Drop A Table With Many Extents
- HDU1213-How Many Tables
- How to read Oracle 10046 trace fileOracle
- MySQL InnoDB File-Per-Table表空間MySql
- MySQL中innodb_file_per_table引數MySql
- HDU 1213 How Many Tables(並查集)並查集
- How to build a jar file by mavenUIJARMaven
- How to re-create the ASMASM
- How to restore ASM based OCRRESTASM
- How to cleanup ASM installationASM
- Oracle 12C Database File Mapping for Oracle ASM FilesOracleDatabaseAPPASM
- HDU 2157 How many ways?? (矩陣快速冪)矩陣
- 動態規劃 hdu 1978 How many ways動態規劃
- rsau/max_diskspace/per_file - Maximum size of one single security audit file
- How To Change The Asm Rebalancing PowerASM
- How to Convert Class File to Java File Online?Java
- How to create user for oracle10g/11g asm instanceOracleASM
- ASM file metadata operationASM
- [Oracle Script] Undo Usage Per statusOracle
- [Oracle Script] Undo Usage Per sessionOracleSession
- How to use Qt Designed Ui fileQTUI
- How to dynamically evaluate a tag within a java fileJava
- HOW TO PRINT FILE TO NOTEPAD IN GUI?GUI
- How to Prepare Storage for ASM (Doc ID 452924.1)ASM
- One more way regarding germany niubian how to remain difficult forREMAI
- HDU 3038 How Many Answers Are Wrong (帶權並查集)並查集
- How to Check ASM Login for Oracle Goldengate (OGG) ? [ID 1311784.1]ASMOracleGo
- How to Restore ASM Password File if Lost ( ORA-01017 ORA-15077 )_1644005.1RESTASM
- ASM 11g New Features - How ASM Disk Resync WorksASM