幾個重要的 ASM Disk Groups 引數

張衝andy發表於2017-02-28

幾個重要的Disk group 屬性:

1、 ACCESS_CONTROL.ENABLED
該屬性用來控制某個disk group 上ASM FILE Access Control。 該引數有2個值:true 和false。 預設為false。
當這個引數設定為true。 那麼就必須訪問許可權的控制才能訪問disk group上的ASM FILES。 
如果是false,那麼任何使用者都可以訪問disk group上的檔案。

修改命令:
ALTER DISKGROUP XXX SET ATTRIBUTE 'access_control.enabled' = 'true';

2、 COMPATIBLE.RDBMS
該屬性用來指定disk group 最小能夠相容的資料庫例項,
在修改這個引數之前,必須先確保所有的資料庫例項的COMPATIBLE 引數大於等於該引數的值。

在Oracle 11g 資料庫中,Oracle ASM disk group 的COMPATIBLE.RDBMS屬性值預設是: 10.1

檢視命令:
SQL> set lin 120
SQL> col name for a30
SQL> col value for a30
SQL> select name,value from v$asm_attribute where group_number=1 and name like 'compatible%';

修改命令:
SQL> ALTER DISKGROUP DATA SET ATTRIBUTE 'compatible.rdbms' = '11.2.0.0.0';
Diskgroup altered.

3、 ACCESS_CONTROL.UMASK
該屬性用來指定訪問ASM 檔案的許可權,只能使用alert 命令修改。
該引數值包含3個數字:{0|2|6} {0|2|6} {0|2|6}. 預設是066。
0: 表示具有讀寫的許可權
2: 表示只讀的許可權
6: 表示不能讀寫

修改命令:
在設定磁碟組ACCESS_CONTROL.UMASK屬性之前,必須先確保ACCESS_CONTROL.ENABLED 引數設定為TRUE。 
啟用檔案訪問許可權控制後,才能設定該引數。

SQL> alter diskgroup fra set attribute 'access_control.enabled' = 'true';
Diskgroup altered.
SQL> alter diskgroup fra set attribute 'access_control.umask' = 'XXX'; (若設定錯誤alert會報錯)

4、COMPATIBLE.ASM
如果使用CREATE DISKGROUP 命令,或者ASMCMD的mkdg命令,或者OEM 來建立的disk group,那麼引數的預設值就是10.1.
如果使用ASMCA來建立的,那麼預設值就是11.2.
這個引數設定會影響磁碟上ASM metadata 的資料結構資訊。
COMPATIBLE.ASM 屬性決定能夠使用對應disk group 的最小的Oracle ASM 例項 軟體的版本。

檢視引數:
SQL> select name,value from v$asm_attribute where group_number=1 and name like 'compatible%';

5、 AU_SIZE
AU_SIZE的值可以為如下單位: 1, 2, 4, 8, 16, 32, 和 64 MB。
該引數只能在建立disk group的時候指定,一旦指定了就不能在修改了。 
在oracle 10g裡面,對於較大的資料庫,也是建議增加AU size,因為增加AU_SIZE 能夠增加對檔案的大小的限制。 
在Oracle 11g,雖然預設值是1M,但是Oracle 建議將該值設定成4M。

檢視 AU_SIZE 大小。
SQL> select name, allocation_unit_size/1024/1024||'M' from v$asm_diskgroup;

6、 DISK_REPAIR_TIME
在Oracle Database 11g以前,如果ASM磁碟的損壞,那就是一種災難,即使你的ASM磁碟組是受Normal Redundancy或High Redundancy的保護。
因為在Oracle 10g中,損壞的ASM磁碟會馬上offline,進而這個損壞的磁碟立刻會被Oracle drop掉。

為了避免這個問題,Oracle 在11g裡引入了一個引數disk_repair_time,其預設值是3.6小時並且使用者可以修改。
這個引數的單位可以是分鐘(m or M)或者是小時(h or H)。 如果我們在指定屬性時沒有指定單位,那麼預設單位是小時。 
該屬性只能透過ALTER 命令來進行修改。
當損壞的磁碟offline後,Oracle並不會馬上將其drop,而是會等待引數disk_repair_time所表示的時間。

在這段時間內,Oracle會記錄下對損壞的磁碟上的extent所做的修改,一旦這個offline的損壞的磁碟在disk_repair_time所表示的時間內重新online,則Oracle會將之前所記錄的對這個磁碟上extent所做的修改重新同步到這塊盤上,從而高效地同步了資料(因為這裡只同步了offline後修改的extent上的資料),避免了極為耗時的重構全部資料的rebalance過程。
這個過程就是11g中的:快速映象同步(Fast Mirror Reync),必須將磁碟組的COMPATIBLE.ASM的屬性值設定大於11.1。

當出現disk 出現故障被offline 後,我們可以檢視V$ASM_DISK檢視的REPAIR_TIMER。 該列顯示的是disk 被drop 之前的剩餘時間,單位是秒。 
一旦超過disk_repair_time指定的時間,disk 就會被drop 掉。那麼我們就需要進行rebalance操作,而不能進行快速映象同步。

檢視drop 之前的剩餘時間:

SQL> col name for a15
SQL>select disk_number,name,path,MODE_STATUS,REPAIR_TIMER from v$asm_disk where group_number=X;

7、 SECTOR_SIZE
SECTOR_SIZE 只能在建立diskgroup 時來指定。 該屬性可以設定為512, 4096 或者4k。 具體的預設值由不同的平臺決定。
只能在建立disk group 的時候進行設定,一般建立完成就不能修改。
傳統的磁碟每個扇區512位元組,隨著磁碟容量的不斷增大,繼續使用512byte,不再是那麼的合理,
於是將每個扇區512位元組改為每個扇區4096 個位元組,也就是現在常說的“4K扇區”。

檢視SECTOR_SIZE:
SQL> SELECT name, value FROM V$ASM_ATTRIBUTE WHERE name = 'sector_size' AND group_number = 1;

如何修改:
不是所有的磁碟都支援SECTOR_SIZE值,如果要設定該屬性,必須先確保物理磁碟的相容性。
如果要修改sector size值,那麼就必須確保disk group的COMPATIBLE.ASM 和 COMPATIBLE.RDBMS 屬性值大於等於11.2。

注意:
Oracle Automatic Storage Management Cluster File System (Oracle ACFS) 不支援 4 KB sector drives.

 


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

相關文章