管理 ASM 例項

us_yunleiwang發表於2015-01-12
管理 ASM 例項



ASM 對於管理員的好處
使用 ASM 可以免除非 ASM 儲存環境中必不可少的許多工。其中包括:
I/O 效能最佳化 - ASM 採用條帶化和映象所有內容的策略,且執行自動重新平衡操作,這意味著不再需要旨在平衡磁碟使用以及消除磁碟熱點的 I/O 效能最佳化。
資料檔案移動和重新組織 - 不再需要更改資料檔案的位置來滿足效能要求和空間制約。
檔名管理 - 不再需要定義和強制執行檔案命名策略。
邏輯卷、檔案系統、叢集檔案系統和裸裝置管理 - 不再需要這些儲存元素。
使用 ASM 可以減少下列重要方面的工作,從而提供更多好處:
LUN 管理工作量減少,因為 ASM 通常需要更少但更大的 LUN。
資料庫管理員與系統管理員之間通常存在的依賴性將大大減少。例如,新增新資料檔案或將磁碟資源從一個磁碟組移至另一磁碟組時不再需要系統管理員干預。
手動執行維護任務時可能發生的錯誤將大大減少。例如,使用常規檔案系統時,新建資料檔案時可能不慎違反了檔案命名慣例,導致資料庫的其餘部分不支援該檔案。


ASM 例項
每次啟動 ASM 或資料庫時,都會分配一個稱為系統全域性區 (SGA) 的共享記憶體區域並啟動 Oracle ASM 或資料庫後臺程式。後臺程式和 SGA 的組合稱為 Oracle ASM 例項或 Oracle DB 例項。該例項表示正在執行的 ASM 環境的 CPU 和 RAM 元件。
ASM 例項中的 SGA 與資料庫例項中的 SGA 在記憶體分配和使用方面是不同的。ASM 例項中的 SGA 分為四個主要區域,如下所述:
共享池:用於後設資料資訊
大型池:用於並行操作
ASM 快取記憶體:用於在重新平衡操作期間讀取和寫入塊
空閒記憶體:可用的未分配記憶體
建議為 ASM 例項使用的最低記憶體量為 256 MB。自動記憶體管理在 ASM 例項上預設啟用,它將動態最佳化各個 SGA 記憶體元件的大小。ASM 例項所需的記憶體量將取決於 ASM 管理的磁碟空間量。 
ASM 例項的第二部分是後臺程式。一個 ASM 例項可以具有許多後臺程式;並不是總是會出現所有程式。 


ASM 元件:ASM 例項(續)
下一幻燈片將講述特定於 ASM 功能的後臺程式。後臺程式分為必需和可選兩種。其中一些程式如下所述:
ARCn:歸檔程式
CKPT:檢查點程式
DBWn:資料庫寫程式
DIAG:診斷程式
Jnnn:作業佇列程式
LGWR:日誌寫程式
PMON:程式監視器程式
PSP0:程式衍生程式程式
QMNn:佇列監視器程式
RECO:恢復器程式
SMON:系統監視器程式
VKTM:虛擬計時器程式
MMAN:記憶體管理器程式
以上程式列表不是完整列表。對於 ASM 例項,這些程式不是始終會執行在資料庫例項中會執行的任務。例如,資料庫例項中的 LGWR 程式負責將更改向量從 SGA 的日誌緩衝區部分複製到磁碟上的聯機重做日誌。ASM 例項的 SGA 中不包含日誌緩衝區,該例項也不使用聯機重做日誌。ASM 例項中的 LGWR 程式將日誌記錄資訊複製到 ASM 磁碟組。
如果 ASM 是叢集形式的,則將在 ASM 例項中執行與叢集管理相關的附加程式。其中一些程式如下所述:
LMON:全域性入隊服務監視器程式
LMDn:全域性入隊服務守護程式
LMSn:全域性快取記憶體服務程式
LCKn:鎖程式



ASM 元件:ASM 例項 - 主程式
ASM 例項使用專用後臺程式來實現大多數功能。RBAL 程式在自動儲存管理例項中協調磁碟組的重新平衡活動。它負責對自動儲存管理磁碟執行全域性開啟操作。ARBn 程式在自動儲存管理例項中執行實際的重新平衡資料區移動。可能同時存在多個這樣的程式,這些程式名為 ARB0、ARB1,等等。GMON 程式維護 ASM 磁碟組中的磁碟成員資格。在向離線磁碟寫入失敗後,MARK 程式將 ASM 分配單元標記為過時。Onnn 程式表示客戶機/伺服器連線的伺服器端。啟動例項時將出現這些程式,之後它們將消失。它們形成與 ASM 例項的一組連線,用於交換訊息,並且只在需要時顯示。PZ9n 程式表示當 ASM 同時在叢集配置中的多臺計算機上執行時,用於提取資料的一個或多個並行從屬程式。


ASM 例項初始化引數
與常規資料庫例項相同,ASM 例項是由引數檔案控制的。其中通常需要設定的引數包括:
對於 ASM 例項,INSTANCE_TYPE 應設定為 ASM。這是唯一一個必須定義的引數。對於資料庫例項,該引數設定為 RDBMS。
ASM_POWER_LIMIT 控制重新平衡操作的速度。值的範圍在 1 到 11 之間,11 表示速度最快。如果省略,該值預設為 1。
ASM_DISKSTRING 是一個與作業系統相關的值,ASM 使用它來限制搜尋時考慮的磁碟集。預設值為空字串,這在大都數情況下就足夠了。如上所示的約束性更強的值可以減少 ASM 執行搜尋所需的時間,從而提高磁碟組裝載次數。
ASM_DISKGROUPS 列出 ASM 例項啟動時或者使用 ALTER DISKGROUP ALL MOUNT 命令時裝載的磁碟組的名稱。Oracle Restart 會裝載列為依賴項的磁碟組,即使這些磁碟組未與 ASM_DISKGROUPS 引數列在一起也是如此。該引數沒有預設值。
ASM_PREFERRED_READ_FAILURE_GROUPS 指定包含首選讀取磁碟的故障組。對於包含資料的映象副本且有一個副本非常接近於伺服器的擴充套件或延伸叢集資料庫,該引數非常有用。 


DIAGNOSTIC_DEST 指定自動診斷資料檔案庫 (ADR) 主目錄的位置。此目錄下有跟蹤檔案、預警日誌、核心檔案和意外事件檔案。此引數的預設值是由 ORACLE_BASE 的值派生的。 
LARGE_POOL_SIZE 指定大型池分配堆的大小(以位元組為單位)。大型池分配堆用於共享伺服器系統中的會話記憶體,供訊息緩衝區的並行執行和磁碟 I/O 緩衝區的備份程式使用。ASM 例項使用自動記憶體管理,所以此引數是大型池不能低於的最小大小。
REMOTE_LOGIN_PASSWORDFILE 指定 Oracle 軟體是否檢查口令檔案。預設值為 EXCLUSIVE。
上面列出的八個引數是需要為 ASM 例項建立的唯一幾個非預設引數。ASM 例項與資料庫例項的區別是:不是所有資料庫引數都對 ASM 例項有效。在全部 344 個資料庫例項引數中,大約有 74 個引數可以用於 ASM 例項。對於幻燈片中未列出的其它引數,雖然其預設值對於大多數安裝來說應該已經足夠了,但也可以根據需要進行設定。

注:ASM 例項預設啟用自動記憶體管理,即使未明確設定 MEMORY_TARGET 引數也是如此。這是您需要為整個 ASM 記憶體管理設定的唯一引數。Oracle Corporation 強烈建議您對 ASM 使用自動記憶體管理。



資料庫例項與 ASM 之間的互動
檔案建立過程很好地說明了資料庫例項和 ASM 之間發生的互動。檔案建立過程如下所示:
資料庫請求檔案建立。 
ASM 前臺程式建立一個持續操作目錄 (COD) 條目並在磁碟組中為新的檔案分配空間。 
ASMB 資料庫程式接收新檔案的區對映。
該檔案現在開啟,資料庫程式直接初始化該檔案。
初始化完成後,資料庫程式將請求提交檔案建立。這將導致 ASM 前臺程式清除 COD 條目,並將檔案標記為已建立。
檔案提交確認會隱式關閉該檔案。將來發生 I/O 時,資料庫例項需要重新開啟該檔案。
此示例強調了關於 ASM 體系結構的重要兩點:
資料庫例項和 ASM 例項以協調的方式一起工作。資料庫例項必須與 ASM 互交,以便將資料庫檔案對映到 ASM 區。資料庫例項還接收與 ASM 操作(例如磁碟組重新平衡)相關的持續訊息流,這類操作可能鎖定或移動 ASM 區。
資料庫 I/O 不透過 ASM 例項來傳輸。實際上,資料庫直接根據 ASM 檔案執行 I/O 操作,如幻燈片中步驟 4 所示。

ASM 例項承載基於記憶體的後設資料表,這些表透過動態效能檢視呈現。
ASM 實用程式使用 SQL 語言訪問這些表來檢索僅含後設資料的資訊
包含許多專用的 ASM 相關檢視,例如:


V$ASM_ALIAS                         V$ASM_ATTRIBUTE                 V$ASM_CLIENT
V$ASM_DISK                        V$ASM_DISK_IOSTAT                 V$ASM_DISK_STAT
V$ASM_DISKGROUP        V$ASM_DISKGROUP_STAT         V$ASM_FILE
V$ASM_OPERATION        V$ASM_TEMPLATE




ASM 例項:動態效能檢視
對於任何例項而言,其主要功能之一就是儲存基於記憶體的後設資料表。這些表以字首 X$ 開頭並且通常不進行記錄。以字首 V$ 開頭的一系列動態效能檢視用於以定製形式顯示 X$ 記憶體表中包含的資料。這類資訊是以只讀方式提供的,只有具有相應許可權的管理員可以使用。此資訊是使用 SQL 語言從 ASM 檢索的。上面的幻燈片列出了包含 ASM 相關後設資料的最常用動態效能檢視。還有數百個其它動態效能檢視,但是其中大多數檢視都是空的,因為它們需要資料庫例項裝載資料庫控制檔案。ASM 例項不裝載資料庫控制檔案。有關動態效能檢視的完整列表,請參閱《Oracle Database Reference 11g Release 2 (11.2)》文件手冊。 


ASM 系統許可權
由於 ASM 例項沒有資料字典,因此連線到 ASM 例項的唯一方法是使用以下三個系統許可權之一:SYSASM、SYSDBA 或 SYSOPER。下面的列表講述了這些 ASM 系統許可權。
SYSASM:此許可權提供對 ASM 例項的完全管理許可權。 
SYSDBA:此許可權授予對 ASM 中儲存的資料的訪問許可權,在當前版本中還授予 SYSASM 管理許可權。 
SYSOPER:此許可權授予使用一組非破壞性 ALTER DISKGROUP 命令以及啟動和停止 ASM 例項的許可權。不允許使用其它命令,例如 CREATE DISKGROUP。
安裝 ASM 後,作業系統組將被分配 SYSASM、SYSDBA 以及 SYSOPER 許可權。這些組又分別稱為 OSASM、OSDBA 和 OSOPER 組。這些作業系統組的成員資格會將相關係統許可權自動地分配給相關作業系統使用者。
首次建立 ASM 例項時,只會定義 sys 和 asmsnmp 這兩個 ASM 使用者。  


使用 Oracle Enterprise Manager 管理 ASM 使用者
使用 Oracle Enterprise Manager,您可以管理透過遠端連線(使用口令檔案驗證)訪問 ASM 例項的使用者。這些使用者是專為 ASM 例項保留的。
但是,僅當以 SYSASM 使用者身份連線時才能使用此功能。如果以 SYSDBA 或 SYSOPER 使用者身份連線,則此功能將處於隱藏狀態。 
單擊“Create(建立)”按鈕後,會顯示“Create User(建立使用者)”頁。
單擊“Edit(編輯)”按鈕後,會顯示“Edit User(編輯使用者)”頁。 
單擊“Delete(刪除)”按鈕可以刪除已建立的使用者。
注:要以 SYSASM 角色登入 ASM,請單擊頁面頂部的“Preferences(首選項)”連結,然後單擊“Preferred Credentials(首選身份證明)”連結。此時您將在目標型別列表中看到 ASM。單擊 ASM 目標型別旁的“Set Credentials(設定身份證明)”圖示,以定義擁有 SYSASM 許可權的帳戶和口令。可能需要從 Database Control 中登出並再次登入,更改才會生效。


使用 SQL*Plus 啟動和停止 ASM 例項
在 SQL*Plus 中使用 STARTUP 命令啟動 ASM 例項,其方式與啟動 Oracle DB 例項的方式相似。啟動 ASM 例項時,請注意以下幾點:
要使用 SQL*Plus 連線到 ASM 例項,請將 ORACLE_SID 環境變數設定為 ASM SID。單例項資料庫的預設 ASM SID 是 +ASM,Oracle RAC 節點的預設 ASM SID 是 +ASMnode_number,其中 node_number 是節點編號。oraenv 指令碼將設定 ORACLE_BASE、ORACLE_SID、ORACLE_HOME 和 PATH 變數。
初始化引數檔案必須包含以下條目:
INSTANCE_TYPE = ASM
        該引數指示正在啟動 ASM 例項,而不是資料庫例項。
執行 STARTUP 命令時,該命令嘗試裝載初始化引數 ASM_DISKGROUPS 指定的磁碟組,而不是嘗試裝載和開啟某個資料庫。如果尚未為 ASM_DISKGROUPS 輸入值,稍後可以透過 ALTER DISKGROUP...MOUNT 命令裝載磁碟組。



下面的列表講述了與 ASM 相關的 STARTUP 命令引數。
FORCE:重新啟動 ASM 例項之前向它發出 SHUTDOWN ABORT。
MOUNT 或 OPEN:裝載 ASM_DISKGROUPS 初始化引數中指定的磁碟組。如果未指定命令引數,則執行此預設命令。
NOMOUNT:在不裝載任何磁碟組的情況下啟動 ASM 例項。
RESTRICT:以受限模式啟動例項。RESTRICT 子句可以與 MOUNT、NOMOUNT 以及 OPEN 子句組合使用。在受限模式下,資料庫例項無法使用磁碟組。也就是說,資料庫無法開啟磁碟組中的檔案。另外,如果磁碟組是由某個例項在受限模式下裝載的,則該磁碟組無法由叢集中的任何其它例項裝載。透過受限模式,可在不受其它客戶機干預的情況下,在磁碟組上執行維護任務。在磁碟組處於受限模式下時執行重新平衡操作,就不再需要在叢集環境中的 ASM 例項之間傳遞鎖定和取消鎖定區對映訊息。這樣可以提高整體的重新平衡吞吐量。在維護期間結束時,您必須顯式解除安裝該磁碟組並在正常模式下重新裝載該磁碟組。
在 SQL*Plus 中執行 SHUTDOWN 命令時,將啟動 ASM 關閉程式。執行此命令之前,請確保已設定 ORACLE_SID 和 ORACLE_HOME 環境變數,以便可以連線到 ASM 例項。
Oracle 強烈建議您在嘗試關閉 ASM 例項之前關閉使用該 ASM 例項的所有資料庫例項。
下面的列表講述了與 ASM 相關的 SHUTDOWN 命令引數。
NORMAL:ASM 在解除安裝所有磁碟組並關閉 ASM 例項之前,將等待任何正在進行的 SQL 完成執行。在關閉例項之前,ASM 將等待當前已連線的所有使用者從該例項斷開。如果有任何資料庫例項連線到 ASM 例項,則 SHUTDOWN 命令將返回錯誤,並使 ASM 例項保持執行狀態。NORMAL 是預設關閉模式。
IMMEDIATE 或 TRANSACTIONAL:ASM 在解除安裝所有磁碟組並關閉 ASM 例項之前,將等待任何正在進行的 SQL 完成執行。ASM 不等待當前與例項連線的使用者斷開連線。如果有任何資料庫例項連線到 ASM 例項,則 SHUTDOWN 命令將返回錯誤,並使 ASM 例項保持執行狀態。
ABORT:ASM 例項立即關閉,不按順序卸裝磁碟組。這將導致下次啟動 ASM 時進行恢復操作。如果有任何資料庫例項連線到 ASM 例項,則該資料庫例項也將中止。

注:如果存在已連線的 RDBMS 例項,則不會應用 NORMAL、IMMEDIATE 和 TRANSACTIONAL 形式的關閉。此時將返回以下錯誤:
ORA-15097: cannot SHUTDOWN ASM instance with connect RDBMS instance

使用 srvctl
啟動和停止 ASM 例項可以使用 Server Control 實用程式 (srvctl) 啟動和停止 ASM 例項以及由 Grid Infrastructure 管理的其它資源。srvctl 實用程式位於 Grid Infrastructure 的 ORACLE_HOME/bin 位置下和資料庫安裝的 ORACLE_HOME/bin 位置下。管理 ASM、監聽程式或 Oracle Restart 時,應該使用位於 Grid Infrastructure 中的 srvctl 實用程式。可以使用下列方式透過 srvctl 實用程式控制 ASM:
啟動 ASM 例項。
        srvctl start asm [-o ]
                是有效的例項啟動選項之一                (FORCE、MOUNT、OPEN、NOMOUNT 或 RESTRICT)(可選)
停止 ASM 例項。
        srvctl stop asm [-o ] -f
                是有效的例項關閉選項之一                (NORMAL、IMMEDIATE、TRANSACTIONAL 或 ABORT)(可選),並且 –f 是                強制的
報告 ASM 例項的狀態。
        srvctl status asm 

$ . oraenv
ORACLE_SID = [orcl] ? +ASM  
The Oracle base for ORACLE_HOME=/u01/app/oracle/product/11.2.0/grid is /u01/app/oracle
$ asmcmd
Connected to an idle instance.
ASMCMD> startup 
ASM instance started

Total System Global Area  284565504 bytes
Fixed Size                  1336028 bytes
Variable Size             258063652 bytes
ASM Cache                  25165824 bytes
ASM diskgroups mounted
ASM diskgroups volume enabled
ASMCMD> shutdown --abort
ASM instance shut down
Connected to an idle instance.



使用 asmcmd
啟動和停止 ASM 例項用於管理的 ASM 後設資料位於 ASM 例項內包含的動態效能檢視內。通常透過 ASM 實用程式使用 SQL 語言來訪問這些檢視。要求瞭解 SQL 語言增加了掌握 ASM 的學習時間,而且 SQL 語言培訓通常不在系統管理員和儲存管理員的學習範圍內。asmcmd 實用程式提供了一個類似偽 Shell 的環境,可以接受 UNIX 格式的語法來執行常用的 ASM 管理任務。它可以用於管理 Oracle ASM 例項、磁碟組、磁碟組的檔案訪問控制、磁碟組內的檔案和目錄、磁碟組的模板以及卷。
可使用 asmcmd 實用程式來啟動和關閉 ASM 例項。支援的啟動選項包括:
--nomount(在不裝載磁碟組的情況下啟動 ASM 例項)
--restrict(啟動 ASM 例項並限制資料庫使用情況)
--pfile (使用定製 pfile 啟動 ASM 例項)
支援的關閉選項包括:
--immediate(立即執行關閉)
--abort(中止所有現有操作)

磁碟組概覽
磁碟組是一個或多個磁碟的邏輯分組,ASM 將其作為一個集合來管理。每個磁碟組都包含與自身相關聯的後設資料。在概念上,ASM 磁碟組類似於典型儲存區域網路中的邏輯卷。
檔案是從磁碟組內的空間進行分配的。磁碟組中儲存的檔案的內容將在該磁碟組的磁碟中平均分佈或條帶化,以便消除熱點並在各磁碟間提供一致的效能。每個 ASM 檔案都完全包含在一個磁碟組中。但是,一個磁碟組可以包含屬於多個資料庫的檔案,而一個資料庫可以使用來自多個磁碟組的不同檔案。  
磁碟組的一個關鍵屬性是冗餘設定。有三種可能的磁碟組冗餘設定:
外部冗餘,其中 ASM 不提供任何映象,並假定磁碟高度可靠。 
正常冗餘,其中 ASM 預設支援雙向映象,從而保證在較不可靠的儲存上實現資料完整性。
高冗餘,其中 ASM 預設支援三向映象,從而更好地保證資料完整性。
ASM 最多支援建立 63 個磁碟組;不過,對於大多數安裝,您很少會需要很多磁碟組。 

ASM 磁碟
ASM 磁碟組包含一個或多個 ASM 磁碟。
ASM 磁碟必須可由叢集中所有節點的 ASM 所有者讀取和寫入。 
ASM 磁碟可以是磁碟上的分割槽,但是 Oracle 強烈建議不要與其它應用程式共享 ASM 使用的物理磁碟。這是因為在應用 ASM 條帶化和映象策略時,磁碟組內的各個 ASM 磁碟的 I/O 效能必須相似且一致,才能獲得最佳效能。在 ASM 和其它應用程式之間共享裝置將難以確保磁碟效能相似且一致。
叢集中不同節點上的 ASM 磁碟的 O/S 裝置名稱不必相同。ASM 透過讀取 ASM 磁碟的標頭來識別磁碟組的成員。 
通常,ASM 磁碟是儲存陣列中提供給 ASM 的裸 LUN。另外,ASM 磁碟還可以是遠端 NFS 檔案器中的檔案。


分配單元
在 ASM 磁碟內,空間劃分為分配單元 (AU)。AU 預設大小是 1 MB,該大小足夠小,不會變為熱點,但又足夠大,能夠提供高效的連續訪問。建立磁碟組時可以設定 AU 大小。您無法更改磁碟組的 AU 大小。在超大型資料庫 (VLDB) 中或使用專門的儲存硬體時,較大的 AU 大小可能會很有用。如果經常訪問某個 AU,則資料庫核心會將其快取以便實現更高的訪問效率。 

ASM 檔案:
是由 AU 組成的 ASM 區的集合
可變大小的區支援大型檔案
對資料庫核心顯示為普通檔案
檔名以“+”開頭
例如,+DATA/orcl/datafile/system.256.689832921
可以與可選的檔名別名相關聯
例如,+DATA/dbfiles/mydb/system01.dbf
在磁碟組中的磁碟間均勻分佈 
根據磁碟組中定義的策略進行映象


ASM 檔案
ASM 呈現一組檔案供 ASM 的客戶機使用。ASM 檔案由一組分配單元組成,這些檔案對資料庫核心顯示為普通檔案。
每個 ASM 檔案都有一個唯一的系統生成名稱。幻燈片顯示了一個完全限定的 ASM 檔名示例。完全限定的 ASM 檔名錶示一個層次結構,其開頭是加號與磁碟組名稱的組合。磁碟組名稱後是資料庫名稱和檔案型別。最後的元素由標記名稱、檔案編號和原型編號組成。可以建立別名(可選),為管理員提供一種更使用者友好的方式來引用 ASM 檔案。 
使用條帶化和映象所有內容 (SAME) 這一策略,可以在磁碟組的各 ASM 磁碟中均勻分佈檔案。 
ASM 本身支援大多數與資料庫相關的檔案型別,例如資料檔案、日誌檔案、控制檔案、RMAN 備份及其它檔案。在 Oracle Database 11g 發行版 2 之前,ASM 僅支援與 Oracle DB 相關的檔案,無法用於儲存和管理 ASCII 跟蹤檔案和預警日誌、Oracle 二進位制檔案、Oracle 叢集登錄檔 (OCR) 和叢集表決磁碟。Oracle Database 11g 發行版 2 提供在 ASM 上執行通用檔案系統的方式,從而消除了上述限制。  


區對映
ASM 透過稱為區對映的後設資料跟蹤檔案的分佈。區對映是一個表,將檔案中的資料區對映到磁碟上的分配單元。 
檔案區與分配單元之間的關係如下所示。區包括:
一個 AU 用於前 20,000 個區 (0–19999)
4 個 AU 用於接下來的 20,000 個區 (20000–39999)
16 個 AU 用於 40,000 以上的區
將可變大小的區與大型分配單元結合使用,可滿足非常大的 ASM 檔案的需要。


條帶化粒度
在 ASM 中,條帶化主要有兩個用途:
在磁碟組的所有磁碟中執行 I/O 負載平衡。
改善 I/O 等待時間。 
粗粒度條帶化在磁碟組的各磁碟中分佈分配單元。這樣就為磁碟組提供了負載平衡。分配檔案時,ASM 將分配單元平均分佈到所有磁碟。有時分佈無法非常平均,但是隨著時間的流逝,會變得幾乎相等。上圖顯示了一個具有五個分配單元的檔案,這些分配單元在條帶化之後,分佈在一個外部冗餘磁碟組的五個磁碟中,該磁碟組共包含八個磁碟。
對於前 20,000 個區,區大小等於 AU 大小。從第 20,001 個區到第 40,000 個區,該區組總是一次分配 8 個區,區大小等於 4 倍 AU 大小。如果 AU 大小為 1 MB,這意味著 ASM 檔案將一次增大 64 MB (8 * 4 * 1 MB)。如果檔案採用粗粒度條帶化,則它將在 8 個區中進行條帶化,條帶大小為 1 AU。條帶化始終在 AU 級別進行,而不是在區級別。因此,無論檔案多大,粗粒度檔案的每個 AU 都與該檔案的前一個 AU 所在的磁碟不同。在第 40,000 個區之後,仍舊是每次分配 8 個區,但區大小等於 16 倍 AU 大小。


細粒度條帶化
細粒度條帶化將資料區拆分為 128 KB 的塊,然後在許多磁碟中分佈每個區的負載,從而改善特定型別檔案的等待時間。預設情況下,細粒度條帶化用於控制檔案和聯機重做日誌檔案。
本頁的圖顯示了細粒度條帶化的工作原理。在此示例中,新檔案的第一個 1 MB 區最終佔用 8 個不同分配單元中的第一個 128 KB 塊,這 8 個分配單元分佈在磁碟組的八個磁碟中。因此,1 MB 的讀取或寫入分佈在八個磁碟(而不是一個磁碟)中...


繼續前面的示例,空間中的下一個 1 MB 區將分佈在相同分配單元組的每個單元的第二個 128 KB 塊中。這種模式將繼續,直到第一組分配單元寫滿,然後分配另一組。


ASM 故障組 
在磁碟組內,可以將一些磁碟歸到故障組中。故障組是儲存管理員或資料庫管理員指定 ASM 映象操作的硬體邊界的一種方式。 
例如,可以將連線到一個磁碟控制器的所有磁碟指定為某個公用故障組的磁碟。這樣,將在連線到不同控制器的磁碟上映象檔案區。另外,管理員可以對 ASM 進行配置來選擇預設故障組策略。預設策略是每個磁碟位於自己的故障組中。
您可以使用所需的任何標準將磁碟歸到故障組中。故障組可以用於在單個磁碟、磁碟控制器、I/O 網路元件甚至整個儲存系統發生故障時提供保護。通常,管理員將分析其儲存環境並對故障組進行組織來減輕特定故障情況。
資料庫管理員或儲存管理員將為其安裝確定最佳故障組配置。 


條帶化和映象示例 
本頁中的圖顯示了一個正常冗餘磁碟組中條帶化和映象的示例。紅塊表示一個包含五個區的檔案,這些區在條帶化後,分佈在磁碟組(共八個磁碟)的五個磁碟中。藍塊表示檔案區的映象副本。請注意,無論區在各個磁碟和故障組中如何分佈,每個區在一個故障組中僅有一個副本。
分配檔案時,主區的分配用於保證效能,輔助副本的分配用於保證完整性。因此,預設情況下,所有資料庫讀取都針對主區進行。 

故障示例
此處擴充套件了上一頁中的示例,假設磁碟 H 發生故障,無法再訪問其包含的資料。該故障要求恢復故障磁碟上的所有區並將這些區複製到另一磁碟。 
區 3 和 5 的正常副本將複製到同一故障組中另一磁碟的空閒區域。在此示例中,區 5 將從磁碟 B 複製到磁碟 F,區 3 將從磁碟 C 複製到磁碟 G。
磁碟發生故障後的最後一步是 ASM 從磁碟組中刪除故障磁碟。
刪除磁碟基本上會觸發相同的過程;不過,在刪除磁碟時,要被刪除的磁碟上的區首先會複製到某個可用的替代位置。


管理磁碟組
ASM 例項的主要目標是管理磁碟組並保護其中的資料。ASM 例項還可以向資料庫例項傳遞有關檔案佈局的資訊。透過這種方式,資料庫例項可以直接訪問磁碟組中儲存的檔案。
系統提供了多個磁碟組管理命令。使用這些命令需要具有 SYSASM 或 SYSDBA 許可權,並且必須從 ASM 例項發出這些命令。您可以新增新的磁碟組。還可以修改現有的磁碟組,在其中新增新磁碟、刪除現有磁碟和執行許多其它操作。可以刪除現有的磁碟組。

$ . oraenv
ORACLE_SID = [orcl] ? +ASM  
The Oracle base for ORACLE_HOME=/u01/app/oracle/product/11.2.0/grid is /u01/app/oracle
$ sqlplus / AS SYSASM
SQL*Plus: Release 11.2.0.1.0 - Production on Wed Jul 8 20:46:46 2009
Copyright (c) 1982, 2009, Oracle.  All rights reserved.
Connected to an idle instance.
SQL> CREATE DISKGROUP dgroupA NORMAL REDUNDANCY  
FAILGROUP controller1 DISK
   '/devices/A1' NAME diskA1 SIZE 120G FORCE,
   '/devices/A2',
FAILGROUP controller2 DISK
   '/devices/B1',
   '/devices/B2';




建立和刪除磁碟組
假定在 ASM 磁碟搜尋過程中,在 /dev 目錄中找到以下磁碟:A1、A2、B1 和 B2。另外,假設磁碟 A1 和 A2 位於一個控制器上,而磁碟 B1 和 B2 位於另一個控制器上。幻燈片中的第一個示例說明了如何配置名為 DGROUPA 的磁碟組,該磁碟組有兩個故障組:CONTROLLER1 和 CONTROLLER2。
該示例還對該磁碟組使用預設冗餘屬性 NORMAL REDUNDANCY。可以根據需要提供磁碟的名稱和大小。如果不提供此資訊,ASM 將建立一個預設名稱,並嘗試確定磁碟的大小。如果不能確定大小,則會返回錯誤。FORCE 表示,即使指定磁碟已作為 ASM 磁碟組的成員進行了格式化,也應該將該磁碟新增到指定磁碟組中。如果對未作為 ASM 磁碟組成員進行格式化的磁碟使用 FORCE 選項,則會返回錯誤。 
如幻燈片中的第二個語句所示,可以刪除磁碟組及其所有檔案。如果除內部 ASM 後設資料外,磁碟組中還包含任何其它檔案,則必須指定 INCLUDING CONTENTS 選項,以避免出現誤刪錯誤。必須先裝載磁碟組,然後才能將其刪除。確保磁碟組中的任何檔案均未開啟後,將該組及其所有驅動器一起從磁碟組中刪除。然後,將改寫每個磁碟的標頭,去除其中的 ASM 格式資訊。

ALTER DISKGROUP dgroupA ADD DISK
  '/dev/sde1' NAME A5,
  '/dev/sdf1' NAME A6,
  '/dev/sdg1' NAME A7,
  '/dev/sdh1' NAME A8;




將磁碟新增至磁碟組
本示例顯示如何將磁碟新增到磁碟組。可以執行 ALTER DISKGROUP ADD DISK 命令將磁碟新增到磁碟組。第一個語句將四個新磁碟新增到 DGROUPA 磁碟組。
第二個語句演示搜尋字串的相互影響。請考慮以下配置:/devices/A1 是磁碟組 DGROUPA 的成員。/devices/A2 是磁碟組 DGROUPA 的成員。/devices/A3 是磁碟組 DGROUPA 的成員。/devices/A4 是候選磁碟。第二個命令將 A4 新增到磁碟組 DGROUPA 中。由於其它磁碟已經是 DGROUPA 磁碟組的成員,因此即使它們與搜尋字串匹配,第二個語句仍忽略這些磁碟。上圖顯示當您向磁碟組新增磁碟時,ASM 例項會確保該磁碟是可定址且可用的。然後,才會對該磁碟進行格式化並使其重新平衡。由於需要將所有檔案的區移到新磁碟上,因此重新平衡過程非常耗時。
注:重新平衡不會妨礙任何資料庫操作。重新平衡程式主要會對系統上的 I/O 負載產生影響。重新平衡的強度越高,它加在系統上的 I/O 負載也就越大。這樣,可供資料庫 I/O 使用的 I/O 頻寬就越少。


其它 ALTER 命令
幻燈片中的第一個語句說明如何從 DGROUPA 磁碟組中刪除一個磁碟。第二個語句顯示如何使用單個命令新增和刪除磁碟。本例的最大優點在於:在命令完成前不會啟動重新平衡。第三個語句顯示如何取消磁碟刪除操作。UNDROP 命令只對磁碟的暫掛刪除操作有效,對已完成的刪除操作沒有任何影響。
以下語句將根據需要重新平衡 DGROUPB 磁碟組:
ALTER DISKGROUP dgroupB REBALANCE POWER 5;
此命令通常不是必需的,因為在新增、刪除磁碟或調整磁碟大小時會自動執行此操作。不過,如果希望使用 POWER 子句來覆蓋初始化引數 ASM_POWER_LIMIT 定義的預設速度,則該命令非常有用。透過在命令中重新輸入新的級別,可以更改正在進行的重新平衡操作的強度。如果強度級別為 0,則重新平衡操作將中斷,直到重新隱式或顯式呼叫該命令。以下語句將卸裝 DGROUPA:
ALTER DISKGROUP dgroupA DISMOUNT;
使用 MOUNT 和 DISMOUNT 選項,可以指定可供資料庫例項使用或不可供其使用的一個或多個磁碟組。當例項故障轉移到其它節點時,這種在支援單個例項的叢集 ASM 環境中手動執行解除安裝和裝載的功能很有用。


使用 Oracle Enterprise Manager 的 ASM 管理 
Oracle Enterprise Manager (EM) 是 Oracle 的管理工具系列,管理物件涵蓋資料庫、中介軟體、應用程式、網路、IT 基礎結構及其它。Oracle Enterprise Manager 提供了一個基於瀏覽器的環境,為常見 ASM 管理任務提供了一個點選式替代方案。


ASM 磁碟組相容性
適用於 ASM 磁碟組的相容性有三種;涉及描述磁碟組的持久資料結構,客戶機(磁碟組的使用者)的功能,以及能否在磁碟組中包含卷。這些屬性分別稱為 ASM 相容性、RDBMS 相容性和 ADVM 相容性。可以單獨控制每個磁碟組的相容性。這是啟用包含 Oracle Database 10g 和 Oracle Database 11g 的磁碟組的異構環境所必需的。這三種相容性設定是每個 ASM 磁碟組的屬性:
RDBMS 相容性是指允許該例項裝載磁碟組的 RDBMS 例項的最低相容版本。該相容性確定了 ASM 例項與資料庫 (RDBMS) 例項間交換訊息的格式。ASM 例項可以支援以不同相容性設定執行的不同 RDBMS 客戶機。每個例項的資料庫相容版本設定必須高於或等於該資料庫使用的所有磁碟組的 RDBMS 相容性。資料庫例項與 ASM 例項通常在不同的 Oracle 主目錄中執行。這表示資料庫例項與 ASM 例項所執行的軟體版本可以不同。資料庫例項第一次連線到 ASM 例項時,系統會協定這兩個例項都支援的最高版本。
        資料庫的相容性引數設定、資料庫的軟體版本以及磁碟組的 RDBMS 相容性設定確定了資料庫例項能否裝載指定的磁碟組。 


ASM 相容性是指控制磁碟上 ASM 後設資料的資料結構格式的持久相容性設定。磁碟組的 ASM 相容性級別必須始終高於或等於同一磁碟組的 RDBMS 相容性級別。ASM 相容性只與 ASM 後設資料的格式相關。檔案內容的格式取決於資料庫例項。例如,可以將某個磁碟組的 ASM 相容性設定為 11.0,而將該磁碟組的 RDBMS 相容性設定為 10.1。這表示該磁碟組只能由軟體版本為 11.0 或更高的 ASM 軟體管理,而軟體版本高於或等於 10.1 的任何資料庫客戶機都可以使用該磁碟組。
ADVM 相容性屬性確定磁碟組能否包含 Oracle ASM 卷。該值必須設定為 11.2 或更高。設定該屬性前,必須確保 COMPATIBLE.ASM 的值為 11.2 或更高。此外,還必須載入 ADVM 卷驅動程式。  
僅當持久磁碟結構或訊息傳送協議發生更改時,才需要提高磁碟組的相容性。但是,提高磁碟組相容性是一個不可逆的操作。可以使用 CREATE DISKGROUP 命令或 ALTER DISKGROUP 命令來設定磁碟組相容性。
注:除磁碟組相容性之外,相容引數(資料庫相容版本)決定了所支援的功能。相容引數適用於資料庫或 ASM 例項,具體取決於 instance_type 引數。例如,將該引數設定為 10.1 將禁止使用 Oracle Database 11g 中引入的任何新功能(磁碟聯機/離線、可變區等)。


ASM 磁碟組屬性
建立或變更 ASM 磁碟組時,可以使用 CREATE DISKGROUP 和 ALTER DISKGROUP 命令新增的 ATTRIBUTE 子句更改其屬性。幻燈片中的表簡要概括了這些屬性:
透過 ASM,可以使用在建立磁碟組時指定的不同分配單元 (AU) 大小。分配單元的大小可以為 1、2、4、8、16、32 或 64 MB。
RDBMS 相容性:有關詳細資訊,請參見“ASM 磁碟組相容性”幻燈片。
ASM 相容性:有關詳細資訊,請參見“ASM 磁碟組相容性”幻燈片。
可以用分鐘 (M)、小時 (H) 或天 (D) 為單位指定 DISK_REPAIR_TIME。如果省略單位,則使用預設單位 H。如果省略此屬性,則使用預設值 3.6H。可以使用 ALTER DISKGROUP ... DISK OFFLINE 語句覆蓋此屬性。
還可以為指定的模板指定冗餘屬性。
還可以為指定的模板指定條帶化屬性。
注:對於每個已定義的磁碟組,可以透過 V$ASM_ATTRIBUTE 固定檢視檢視所有已定義的屬性。



使用 Oracle Enterprise Manager 編輯磁碟組屬性
Oracle Enterprise Manager 提供了一種簡單的方式,可用於儲存和檢索與磁碟組相關的環境設定。
在“Create Disk Group(建立磁碟組)”頁和“Edit Advanced Attributes for Disk Group(編輯磁碟組的高階屬性)”頁中都可以設定相容屬性。僅“Edit Advanced Attributes for Disk Group(編輯磁碟組的高階屬性)”頁中新增了 disk_repair_time 屬性。 
注:對於 11g 版本之前的 ASM 例項,預設的 ASM 相容性和客戶機相容性都是 10.1。對於 11g ASM 例項,預設的 ASM 相容性是 11.2,資料庫相容性是 10.1。

檢索 ASM 後設資料
ASM 例項承載基於記憶體的後設資料表,這些表透過動態效能檢視呈現。可使用 SQL*Plus、asmcmd 和 Oracle Enterprise Manager 查詢該資料。
使用 SQL*Plus 需要具有 SQL 語言知識,可能要聯接多個動態效能檢視來檢索相關資訊。幻燈片中的第一個示例顯示 v$asm_file 和 v$asm_alias 之間建立了一個聯接,以便顯示關於資料庫的資料檔案的後設資料。如果針對 ASM 例項執行此查詢,則此查詢將根據語法的設計方式從多個資料庫檢索資料檔案。需要使用附加過濾條件才能將輸出限定為單個資料庫。
asmcmd 實用程式的優點在於,不需要 SQL 語言知識就能連線到 ASM 例項並檢索後設資料。它使用與 Unix 表示法類似的樣式。幻燈片中的第二個示例使用 asmcmd 檢索像 SQL 示例所檢索資料相同的資料。該示例的另一優勢是將輸出限制為單個資料庫的資料檔案,因為列出的路徑包含資料庫名稱 orcl 和檔案型別 data file。因此,對於 asmcmd 中顯示的目錄,需要使用 WHERE 子句設定 SQL 過濾條件才能得到相同結果。
注:在 Oracle Enterprise Manager Database Control 中,只需在各個 ASM Web 頁中瀏覽就能檢視大多數 ASM 後設資料。


ASM 快速映象再同步概覽
ASM 快速映象重新同步可以顯著減少重新同步臨時故障磁碟所需的時間。如果某個磁碟因臨時故障而離線,ASM 將跟蹤在中斷期間發生修改的區。臨時故障被修復後,ASM 可以快速地僅重新同步在中斷期間受影響的 ASM 磁碟區。
此功能假定受影響的 ASM 磁碟的內容未被破壞或修改。
某個 ASM 磁碟路徑出現故障時,如果您已經為相應磁碟組設定了 DISK_REPAIR_TIME 屬性,則 ASM 磁碟會離線,但不會被刪除。此屬性的設定確定了 ASM 可容忍的磁碟中斷持續時間;如果中斷在此時間範圍內,則修復完成後仍可重新同步。
注:跟蹤機制對每個修改的分配單元使用 1 位。這樣可確保跟蹤機制非常高效。

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

相關文章