ASM 知識詳解

cccgw發表於2008-01-21

ASM 知識詳解

做了幾次RAC,最近複習了一下ASM相關知識,總結了一下。

[@more@]

一、ASM概述

ASM 的實現要建立一個普通的ORACLE例項,其中引數INSTANCE_TYPE=ASM被設定為資料庫駐留的節點上某個ASM的值。該例項並沒有相關的資料庫,而只是用來管理被資料庫訪問的磁碟。

ASM可以建立一個或多個磁碟(通常是RAW格式,標準的NFS儲存也可以)組成的ASM磁碟組。在組裡可以存放所有的ORACLE檔案,如spfile,controlfile,redolog,datafile

並且在1MB的大小區間中存放檔案,儘管有很多磁碟是可用的。區間的大小是1M,這對於除控制檔案和日誌檔案之外的檔案都是一樣的,重做日誌,控制元件檔案和日誌檔案預設使用的是細粒度分割帶,其區間大小是128K。這是將大I/O分割成較小的塊,並由更多的磁碟進行處理,從而提高這些型別檔案的效能。

在磁碟組生成時需設定冗餘級別。假設使用一般的冗餘(雙重映象),而我們磁碟組裡有五個盤。如果在該組上建立一個10MB的檔案,那麼第一個1MB的區間可能被映象在磁碟3和磁碟5上,下一個1MB的區間可能被映象在磁碟2和磁碟4上,再下一個區間可能被映象在磁碟1和磁碟3上,如此下去。映象完成後,每個區間都被映象了,但卻沒有兩個磁碟包括相同的映象。ASM外部冗餘與此不同,它是在硬體級別上完成的。假設TEMP表空間是4G,如果由10個磁碟組成磁碟組,我們無需關心表空間是如何佈局的,ASM會自動跨磁碟擴充套件區間,尋找I/O平衡避免產生磁碟過熱點。

映象實際上是針對被稱為“夥伴”磁碟來實現的,在一個ASM磁碟組內,一個磁碟只能有最多8個“夥伴”磁碟。限制“夥伴”數量有利於減少因為雙磁碟故障而導致資料丟失的可能性。ASM理論上最多支援10000個磁碟,可跨越63個磁碟組,ASM在一個磁碟組內可支援一百多萬個檔案,在10g r1中,一個節點只能有一個ASM例項。

ASM磁碟組的檔案大小限制跟冗餘級別有關:

外部冗餘:300GB,一般冗餘:150GB,高冗餘:100GB

ASM磁碟組中新增或刪除磁碟不會影響資料庫可用效能力,ASM會自動重新平衡操作。引數ASM_POWER_LIMIT用來控制重新平衡操作,預設值為1,即啟用一個單獨的從屬程式。最大值為11,建立11個從屬程式。可以推遲重新平衡操作(如在夜裡)。透過:

Alter system set asm_power_limit=0;

Alter system set asm_power_limit=11;

ASM引入兩個程式,RBALARBnRBAL程式用來確定何時需要執行重新平衡操作及估計該操作花費的時間,然後RBAL呼叫ARBn來實際操作,從ARB0ARB11

實際上,常規的資料庫都有一個RBAL程式和一個ASMB程式,但在資料庫例項中RBAL用來進行全域性呼叫,以開啟某個磁碟組內的磁碟。ASMB程式與該節點的CSS守護程式進行通訊,並接收來自ASM例項的檔案區間對映資訊。ASMB還負責為ASM例項提供I/O統計資料。

二、ASM的實現

ASM有初使化引數檔案,與ORACLE例項不同的是,它沒有控制檔案、資料檔案、重做日誌。並有以下幾個引數:

INSTANCE_TYPE=ASMASM例項強制的引數)

ASM_DISKSTRING=/dev/raw/raw*(查詢候選磁碟路徑)

ASM_DISKGROUPS=ASM_DISK(定義啟動時需要安裝的磁碟組)

ASM要求有一個約100MSGA,因此一個ASM例項總的空間大約是130MB.

如果要建立閃回恢復區,ORACLE建議安裝一個單獨的ASM磁碟組作為閃回恢復區。

ASM要求即便是單例項要要執行ocssd後臺程式(叢集同步服務,WINDOWS下,ocssd本身是一種服務,稱為OracleCSService)。為此,即便是在單例項環境下,ORACLE也會在首次安裝過程中自動安裝或建立ocssd 後臺程式。

當一個磁碟成為ASM磁碟組成部分時,每個磁碟的頭被修改以反映相關資訊,如磁碟組名稱、組中所有磁碟容量,分配單元的大小等。磁碟頭還包含與該磁碟相關的特殊資訊,如容量、故障組、磁碟名等。此外,後設資料儲存在磁碟本身的ASM檔案中,使用低於256的檔案號。為此,當在一個ASM磁碟組上建立一個新資料庫時,系統資料檔案的檔案號通常是256,而資料庫其他檔案從256開始向上編號。即使是選擇外部冗餘,ASM後設資料也通常會在三個磁碟上進行映象。

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

相關文章