這個(gè)參數(shù) ASM_POWER_LIMIT 參數(shù)控制 ASM 后臺(tái)進(jìn)程 ARBx 的數(shù)量。ARBx 進(jìn)程用來(lái)進(jìn)行 ASM 磁盤數(shù)據(jù)重新分布打散。ASM_POWER_LIMIT 取值 從 0 到 11(據(jù)說(shuō)從 10gR2 開(kāi)始可以設(shè)置為 0,設(shè)置為0是為不做reblance,默認(rèn)是1,數(shù)值越大速度越快,對(duì)性能要求更高,主機(jī)繁忙的時(shí)候需要特別注意 ). 當(dāng)新添加磁盤或者刪除磁盤后,ASM 會(huì)啟動(dòng) ARBx 進(jìn)行 IO 分散操作,這是個(gè)非常消耗資源的動(dòng)作,所以一定要選擇系統(tǒng)空閑的時(shí)候進(jìn)行。
ASM 默認(rèn)的 Stripe Size 為 128K。 (一般操作系統(tǒng)的一個(gè) IO 最大是 1M,對(duì)于 Block Size 為 8K 的系統(tǒng),一般來(lái)說(shuō),db_file_multiblock_read_count 設(shè)置為 16 即可)。分配單元( Allocation Unit ) 是 1M,這個(gè) AU 對(duì)應(yīng) extent 。在一些 DW 環(huán)境,隨著數(shù)據(jù)量增大,AU 會(huì)非常的多,會(huì)產(chǎn)生性能影響。Stripe Size 和 AU 是可以通過(guò) ASM 實(shí)例上的兩個(gè)隱含參數(shù)調(diào)整的:
INSTANCE_TYPE:ASM實(shí)例要求此參數(shù)為ASM,隱含著將DB_UNIQUE_NAME設(shè)置為+ASM.
ASM_DISKSTRING:指定在磁盤發(fā)現(xiàn)過(guò)程應(yīng)當(dāng)查找的位置,默認(rèn)值是NULL。
ASM_DISKGROUPS:指定在實(shí)例啟動(dòng)時(shí)要自動(dòng)裝載的磁盤組的名稱,默認(rèn)值是NULL。
ASM在分配空間時(shí),以AU為單位進(jìn)行,AU即Allocation units,是組成ASM disk的基本單元。
在Oracle 10gR2中,ASM AU的缺省單位大小是1M,相應(yīng)的條帶大小是128K。
在ASM中,可以通過(guò)調(diào)整_asm_ausize隱含參數(shù)的大小來(lái)進(jìn)行調(diào)整,_asm_stripesize控制相應(yīng)的條帶化參數(shù)。
從v$asm_diskgroup視圖可以查詢得到相關(guān)的信息:
SQL> select group_number,name,sector_size,block_size,allocation_unit_size from v$asm_diskgroup;
GROUP_NUMBER NAME SECTOR_SIZE BLOCK_SIZE ALLOCATION_UNIT_SIZE
------------ ------ ----------- ---------- --------------------
1 ARCHDG 512 4096 1048576
2 DATADG 512 4096 1048576
在Oracle Database 11g中,可以通過(guò)類似如下語(yǔ)句在創(chuàng)建磁盤組時(shí)指定au_size:
SQL> CREATE DISKGROUP DATA DISK '/dev/raw/raw15', '/dev/raw/raw16',
'/dev/raw/raw17' ATTRIBUTE 'au_size' = '16M', 'compatible.asm' = '11.1' 'compatible.rdbms' = '11.1';
ASM允許的相關(guān)參數(shù)可以從DB的實(shí)例中查詢獲得,以下是一系列和asm相關(guān)的初始化參數(shù):
SQL> SELECT x.ksppinm NAME, y.ksppstvl VALUE, x.ksppdesc describ
FROM SYS.x$ksppi x, SYS.x$ksppcv y
WHERE x.indx = y.indx AND x.ksppinm LIKE '%asm%';
NAME VALUE DESCRIB
------------------------------ -------------------- ------------------------------------------------------------
asm_diskstring disk set locations for discovery
_asm_disk_repair_time 14400 seconds to wait before dropping a failing disk
asm_diskgroups disk groups to mount automatically
asm_power_limit 1 number of processes for disk rebalancing
_asm_ausize 1048576 allocation unit size
_asm_blksize 4096 metadata block size
_asm_acd_chunks 1 initial ACD chunks created
_asm_libraries ufs library search order for discovery
_asm_maxio 1048576 Maximum size of individual I/O request
_asm_allow_only_raw_disks TRUE Discovery only raw devices
_asmlib_test 0 Osmlib test event
_asm_allow_resilver_corruption FALSE Enable disk resilvering for external redundancy
_asmsid asm ASM instance id
_asm_wait_time 18 Max/imum time to wait before asmb exits
_asm_stripewidth 8 ASM file stripe width
_asm_stripesize 131072 ASM file stripe size
_asm_droptimeout 60 timeout before offlined disks get dropped (in 3s ticks)
_asm_emulmax 10000 max number of concurrent disks to emulate I/O errors
_asm_emultimeout 0 timeout before emulation begins (in 3s ticks)
_asm_kfdpevent 0 KFDP event
20 rows selected.