asm 相容性、asm instance 主要引數管理

張衝andy發表於2017-02-27

ASM instance 與 Database instance 的版本相容性說明

1. Oracle 11gR2 的ASM 支援11g和10g的資料庫例項。但是在Oracle Clusterware 和Oracle ASM 之間,
Clusterware 的版本必須大於等於ASM 的版本。

2. 如果要使用Oracle 11.2 的資料庫例項,那麼ASM 例項的版本必須是11.2的。 
即,ASM instance具有向下的相容性,但向上就必須版本一致。

可以透過V$ASM_CLIENT 檢視軟體版本和compatible 版本的資訊:
col SOFTWARE_VERSION for a20
col COMPATIBLE_VERSION for a20
select a.name,b.software_version,b.compatible_version from v$asm_client b,v$asm_diskgroup a where a.group_number = b.group_number;

說明:
SOFTWARE_VERSION 列顯示的資料庫的版本或者是ASM disk group對應的ASM instance 版本。
COMPATIBLE_VERSION 也上面一樣,只不過它對應的compatible 引數的值。

ASM 例項的初始化引數

當ASM instance 查詢初始化檔案的時候,搜尋的順序如下:
1. GPnP(Grid Plug and Play) profile 中指定的本地位置。
預設的儲存位置是:
$GRID_HOME/gpnp/$HOSTNAME/profile/peer/profile.xml
$GRID_HOME/gpnp/profile/peer/profile.xml(全域性備份)

2. 如果GPnP profile中沒有指定初始化檔案的位置,然後搜尋ASM Instance Home目錄。這裡會包含2種檔案,SPFILE 和 PFILE,預設路徑是:$ORACLE_HOME/dbs/spfile+ASM.ora
GPnP profile檔案儲存的是叢集的配置資訊。這個XML 檔案裡記錄瞭如下資訊:
1.網路介面和IP地址(公網和私網)
2.ASM diskstring和spfile資訊

注意:Oracle不支援手動修改profile.xml檔案,直接對它的修改可能導致無法修復的問題,最終導致在所有節點重建Clusterware。
RAC環境千萬不能執行 create spfile from pfile 。 (因為建立出來的檔案預設位置在節點本地,且更新了gpnp profile,叢集訪問不到)

ASM 例項的自動記憶體管理機制

預設情況下,ASM 例項會啟動自動記憶體管理,即使沒有指定MEMORY_TARGET引數。 MEMORY_TARGET 引數的預設值在大部分情況下都合適。 這個也是ASM 記憶體管理這塊唯一一個需要設定的引數。 
Oracle 強烈建議對ASM 使用自動記憶體管理。

如果沒有指定MEMORY_TARGET 引數,但指定了其他與記憶體相關的引數,Oracle 內部會自動根據這些引數計算出合適的值來賦給MEMORY_TARGET。

建議設定的 ASM 引數

1 ASM_DISKGROUPS
ASM_DISKGROUPS 引數指定ASM 例項在啟動時需要掛載的disk group 列表。 在我們啟動ASM 例項時指定NOMOUNT 選項或者我們執行ALTER DISKGROUP ALL MOUNT時,Oracle 會忽略ASM_DISKGROUPS引數的設定。

ASM_DISKGROUPS 引數是動態引數,如果我們使用SPFILE 來啟動ASM 例項,那麼我們就不需要設定ASM_DISKGROUPS引數,在我們成功建立或者MOUNT disk group之後,ASM 會自動把disk group 的資訊新增到這個引數中。 
同樣,在我們drop 或者dismount disk group 的時候,ASM 也會自動的從這個引數中移除相關的資訊。

檢視當前值:
SQL> show parameter asm_diskgroups
手工的進行設定:
ALTER SYSTEM SET ASM_DISKGROUPS = DATA, FRA;

2 ASM_DISKSTRING
ASM_DISKSTRING 引數用來執行ASM 例項discover的路徑,如果有多個路徑,那麼用逗號進行分割,並且在路徑中可以使用萬用字元。 在discover的過程中,只要匹配任意一個路徑的disk都會被識別到,同一個disk 只能被匹配一次。
ASM_DISKSTRING 引數中字串的格式有ASM library 和作業系統決定。

檢視我們系統當前的值:
SQL> show parameter asm_diskstring
這個值是我們在建立ASM 例項的時候指定的,如果不指定,我們都看不到我們建立的raw裝置。

3 ASM_POWER_LIMIT
ASM_POWER_LIMIT 引數指定disk group rebalance的default power。
如果disk group 的compatible.asm屬性大於11.2.0.2,那麼該引數的值範圍是0 到 1024. 
如果 disk group的compatible.asm屬性小於11.2.0.2,那麼該引數值只能從0到11.

該引數設定的越高,rebalancing 操作就會進行的越快,但是帶來的影響就是需要高IO ,也需要更多的rebalancing 程式來處理。

-- 檢視compatible
col name for a20
col value for a20
select name,value from v$asm_attribute where name like '%asm%';

檢視limit
SQL> show parameter limit

檢視ASM rebalancing 操作:
SQL> select * from v$asm_operation;

將XXX 這個power改成3:
SQL> alter diskgroup xxx rebalance power 3;
Diskgroup altered.

速度檢視:
SQL> select group_number, operation, state, power, est_minutes from v$asm_operation;

注意: rebalance 的程式是:asm_arb

 


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

相關文章