ASM 知識詳解
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引入兩個程式,RBAL和ARBn,RBAL程式用來確定何時需要執行重新平衡操作及估計該操作花費的時間,然後RBAL呼叫ARBn來實際操作,從ARB0到ARB11。
實際上,常規的資料庫都有一個RBAL程式和一個ASMB程式,但在資料庫例項中RBAL用來進行全域性呼叫,以開啟某個磁碟組內的磁碟。ASMB程式與該節點的CSS守護程式進行通訊,並接收來自ASM例項的檔案區間對映資訊。ASMB還負責為ASM例項提供I/O統計資料。
二、ASM的實現
ASM有初使化引數檔案,與ORACLE例項不同的是,它沒有控制檔案、資料檔案、重做日誌。並有以下幾個引數:
INSTANCE_TYPE=ASM(ASM例項強制的引數)
ASM_DISKSTRING=/dev/raw/raw*(查詢候選磁碟路徑)
ASM_DISKGROUPS=ASM_DISK(定義啟動時需要安裝的磁碟組)
ASM要求有一個約100M的SGA,因此一個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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【ASM】ASM基礎知識ASM
- ASM知識點ASM
- ASM基礎知識ASM
- 【ASM學習】ASM基礎知識ASM
- Git基礎知識詳解Git
- Redis基礎知識詳解Redis
- Spring知識點詳解Spring
- react的詳細知識講解!React
- 【詳解】WebSocket相關知識整理Web
- Oracle-SQL知識詳解(一)OracleSQL
- 【ASM學習】基礎知識ASM
- ITPUB 知識索引--ASM 學習索引ASM
- Oracle ASM 詳解OracleASM
- IPv6基礎知識詳解
- 深入mysql基礎知識的詳解MySql
- 執行緒池知識點詳解執行緒
- Base64編碼知識詳解
- 字符集編碼知識詳解
- 詳解網路知識:iptables規則
- C#重點知識詳解(二) (轉)C#
- C#重點知識詳解(一) (轉)C#
- ASM 11R2基本知識點ASM
- ASM 翻譯系列第九彈:高階知識ASM ToolboxASM
- 【知識詳解】資料庫(秋招總結)資料庫
- Mysql加鎖過程詳解(1)-基本知識MySql
- 十七點學完安全知識超級詳細瞭解程式和病毒知識(轉)
- iOS 開發:『Runtime』詳解(一)基礎知識iOS
- C#有關介面的語法知識詳解C#
- JavaScript進階知識點——函式和物件詳解JavaScript函式物件
- [01-jwt]C# JWT基礎知識詳解JWTC#
- 圖片壓縮知識梳理(8) WebP 使用詳解Web
- 十七點安全知識詳細瞭解程式和病毒
- ASM 翻譯系列第十三彈:ASM 高階知識 - Forcing the issueASM
- c#語言重點知識詳解(四:加框與解框) (轉)C#
- Android小知識-ActivityManagerService詳解(APP啟動過程)AndroidAPP
- 【知識分享】網站伺服器出現404詳解網站伺服器
- 知識分享 | 詳解整車區域控制器(ZCU)
- 惡補基礎知識:Java 棧與佇列詳解Java佇列