全面學習和應用ORACLE ASM特性--(1)關於asm例項

junsansi發表於2010-06-02

  ORACLE10g版本推出時,為了簡化RAC中儲存端的配置,ORACLE新推出了ASM(Automatic Storage Management --自動儲存管理)特性,該特性擁有易管理,高自動性,並且,擁有號稱超越裸裝置IO效能。升級到11gR2版本後,又被正名為傳說中的ASMFS,這也說明了ORACLE對這一特性的重視程度。

  因此從今天起,三思決定花個三二分鐘時間,跟大學一塊學學關於ASM的那點兒事兒,另注,本文操作的資料庫版本為10gR2。

1、About ASM 例項

  ASM 例項與 ORACLE 例項差不多,都是 由 sga 和一堆後臺程式組成,從功能上來看,區別在於oracle例項管理的是資料庫,而asm例項只是管理asm盤陣。

  通過Oracle EM或DBCA都可以對asm進行一些配置,不過三思覺著管理asm括弧例項的最佳工具仍是sql*plus,在進入sql*plus前也需要設定ORACLE_SID的環境變數,該環境變數通常是+ASM[node#] 。

  ASM 例項沒有資料字典之類的東東儲存使用者系統,因此最常見的連線認證方式就是作業系統認證as sysdba進入(OSDBA組的使用者)。如果是通過遠端連線的話( 比如遠端通過tnsnames或OEM管理),也可以使用金鑰檔案進行驗證,該金鑰檔案直資料庫的金鑰檔案在命名規則及使用規則上完全一模一樣。如果使用dbca建庫的話,預設就會建立asm的金鑰檔案,當然也可以自行手動通過orapwd命令進行建立,與資料庫的金鑰檔案有所不同的是,asm 的金鑰檔案對應的使用者只有一個----sys。

    提示:什麼是 ASMLib !

    即ASM support Library,是由ORACLE提供的簡化管理作業系統管理的API 。

1.1、啟動 / 關閉 ASM 例項

  ASM 例項與DB例項高度相似,啟動和停止例項的命令也一模一樣,就啟動來說,也同樣擁有 NOMOUNT/MOUNT/OPEN /FORCE 幾種狀態。

  • NOMOUNT :僅啟動例項;
  • MOUNT 、OPEN:啟動例項並載入磁碟,注意載入的是磁碟組(如果當前未建立或配置任何磁碟組,則提示敬告資訊),OPEN選項對於ASM例項無意義,等同於MOUNT。
  • FORCE :相當於先執行shutdown abort,然後再startup。

  演示如下(注意別忘了先設定作業系統環境變數ORACLE_SID),先啟動到NOMOUNT:

    [oracle@jssdbn1 ~]$ export ORACLE_SID=+ASM1

    [oracle@jssdbn1 ~]$ sqlplus / as sysdba

    SQL*Plus: Release 10.2.0.4.0 - Production on Wed May 19 08:34:22 2010

    Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.

    Connected to an idle instance.

    SQL> startup nomount

    ASM instance started

    Total System Global Area  130023424 bytes

    Fixed Size                  2082208 bytes

    Variable Size             102775392 bytes

    ASM Cache                  25165824 bytes

    SQL> select name,state from v$asm_diskgroup;

    NAME                           STATE

    ------------------------------ -----------

    ASMDISK1                       DISMOUNTED

    ASMDISK2                       DISMOUNTED

    SQL> select instance_name,status from v$instance;

    INSTANCE_NAME    STATUS

    ---------------- ------------

    +ASM1            STARTED

  載入磁碟組,注意,不是alter database喲:

    SQL> alter diskgroup all mount;

    Diskgroup altered.

    SQL> select name,state from v$asm_diskgroup;

    NAME                           STATE

    ------------------------------ -----------

    ASMDISK1                       MOUNTED

    ASMDISK2                       MOUNTED

  這樣,該ASM就可以提供儲存服務了。

  提示一點,在10g版本中,ASM是依賴於CSS守護程式的,因此在啟動ASM 例項前要確保css守護程式已經啟動 。 CSS(Cluster Synchronization Services) 守護程式 用來維持ASM 及客戶端資料庫例項間的一致性 同步 ,如果是通過dbca建庫的話,那麼CSS守護程式預設即會啟動(跟隨系統reboot)。

  檢查css守護程式是否啟動非常 簡單 ,直接使用crsctl check cssd即可,如果啟動的話會收到"CSS appears healthy"的返回訊息,例如:

    [oracle@jssdbn1 ~]$ crsctl check cssd

    CSS appears healthy

  關閉ASM例項,簡單了,NORMAL/IMMEDIATE/TRANSACTIONAL/ABORT幾個選項的定義與關閉普通資料庫例項完全一模一樣!例如:

    SQL> shutdown immediate

    ASM diskgroups dismounted

    ASM instance shutdown

1.2、關於ASM例項的初始化引數

  ASM 例項的初始化引數形式上與資料庫的初始化引數相同,也分spfile和pfile,操作方式也完全相同,只不過具體的引數及引數值略有差異,大多數資料庫的初始化引數在這裡也能見到,並且某些引數意義都完全相同,同樣也有一些引數雖然見到了,不過並不需要設定,這個可以理解,畢竟asm只有例項,相對比資料庫的初始化引數要簡單的多了,還有一些引數則是資料庫初始化引數中沒有的。比如ASM開頭的那幾個初始化引數,俺爭取把差異的部分都列出來寫明瞭。

  ASM 例項在記憶體佔用這塊還是比較輕量級的,基本上有個100m空間就很充足了 ,因此記憶體這塊相關引數就不說了,下面說說幾個ASM例項特別需要的引數。

  首先,初始化引數中的INSTANCE_TYPE,該引數必須被設定為ASM,如:

    INSTANCE_TYPE=ASM

  標識要啟動的例項是ASM,而不是資料庫例項(資料庫例項對應型別為RDBMS)。

  與ASM相關的初始化引數有三個:

  • ASM_POWER_LIMIT :指定磁碟rebalance的程度,有0-11個級別,預設值為1,指定的級別越高,則rebalance的操作就會越快被完成(當然這也意味著這個時間段內將佔用更多的資源),指定級別較低的話,雖然rebalance操作會耗時更久,但對當前系統的IO及負載影響會更少,這中間的度需要DBA根據實際情況衡量。另外,這個引數指定的只是一個預設值,在操作過程中,即可以隨便動態修改,也可以在語句級命令列時指定power,覆蓋該預設值。
    提示:關於rebalance操作,如果你沒接觸過,還不明白是什麼意思,沒關係,繼續往下看!
  • ASM_DISKSTRING :用最簡單的話說,就是設定ASM啟動時檢查的磁碟,該選項可以同時指定多個值,並且支援萬用字元。比如說,只檢查/dev/dsk/下的裝置,可以設定該引數如下:/dev/dsk/*,預設情況下該引數為空,為空的話,表示ASM將查詢系統中所有ASM擁有讀寫許可權的裝置。
  • ASM_DISKGROUPS :指定例項啟動或alter diskgroup all mount語句時要載入的磁碟組,如果為空的話,那麼實際就僅啟動到NOMOUNT狀態了。如果是使用SPFILE的話,該引數一般不需要手動修改,ASM能夠自動更新該初始化引數中的值。

  修改 ASM 例項初始化引數檔案的命令規則與資料庫初始化引數完全相同 ,比如說:

    SQL> alter system set asm_power_limit=5 sid='*';

    System altered.

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

相關文章