共計 2972 個字符,預計需要花費 8 分鐘才能閱讀完成。
ASM 11R2 基本知識點有哪些,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
1 基本概念
ASM 實例一直處于 started 或 mounted 狀態,11R2 其在監聽器中注冊狀態為 ready,即支持遠程訪問;
啟動時將連接字符串注冊到 CSS,數據庫實例啟動時由 ASMB 讀取以此建立同 ASM 的聯系,ASM 使用前臺進程 UFG 同數據庫實例聯系;
磁盤以 AU 為分配單位,在創建磁盤組時指定,范圍為 1 -64M;
ASM 文件以 extent 為單位,一個 extent 可對應若干 AU,為避免管理大文件占用過量 SGA,oracle 采用可變大小的 Extent
0-20000 區間,extent = AU
20000-40000 區間,extent = 4* AU
40000,extent=16* AU
通常建議 ASM extent 等于或是 DB extent 的整數倍;
同一磁盤在不同 RAC 節點的路徑可以不一致,依靠其磁盤頭判斷是否同一磁盤;
2 鏡像與條帶
鏡像
ASM 采用 extent 鏡像而非磁盤鏡像,若某個磁盤失敗,則區間指針可借助磁盤伙伴被重定向到區間鏡像;
在 normal 和 high 冗余策略下,ASM 將主區間和區間鏡像保存于不同的故障組;
ASM 的磁盤伙伴維護 extent 鏡像拷貝,其存于 PST 伙伴狀態表中;ASM 基于故障組定義自動選擇磁盤伙伴,而故障組在創建磁盤組時指定;
磁盤最多可有 10 個 active 伙伴關系,drop disk 會引發重置形成新的伙伴關系,PST 跟蹤此操作直至 rebalance 完成;
過多的磁盤組嵌套可能會耗盡空間,引發 ORA-15074 diskgroup requires rebalance completion;
在 normal 和 high 磁盤組中,可以為文件單獨指定冗余級別;
條帶化
將 AU 存于同一故障組的不同磁盤上,分為粗粒度和細粒度;
粗粒度:條帶 =AU,當區間 20000 時,一個 extent 的 AU 可位于不同磁盤上,提高 IO 吞吐量;
細粒度:條帶 =128K,減少 IO 延遲,適用于 online logfile(可單獨建立細粒度磁盤組);
文件模板決定了條帶化類型,如果創建文件時不顯示指定則選擇默認模板;
3 數據結構
分為物理元數據和虛擬元數據,
3.1 物理元數據
存于磁盤前 2 個 AU,用于必要的 ASM 引導;
3.1.1 磁盤頭第 1 個 AU 的首塊,大小為 4K;
磁盤名 / 磁盤號
磁盤組 / 故障組名
磁盤 /AU 大小
創建 / 加載時間
ASM/DBMS 兼容性
文件目錄指針
3.1.2 AT 分配表
記錄磁盤的 AU 使用情況,每個 AU 對應一個分配條目 ATE(entry),多個 ATE 組成一個 ATB(block);
當 AU 被某文件使用時,其 ATE 記錄下 file no + extent no;
為分配的 AU 標示為 free,而 free extent 保存于 1 個鏈表中以便分配,
其與虛擬元數據 file directory 互補,可通過 alter diskgroup … check 驗證其一致性;
3.1.3 FST 空閑空間表
每個 ATB 包含一個 FST 條目,描述其下 free extent;
請求空間分配時,ASM 通過 FST 跳過 full ATB;
3.1.4 PST 伙伴關系表
占用第 2 個 AU,跟蹤磁盤組成員和磁盤伙伴,ASM 通過其判斷磁盤組是否有足夠磁盤在線;
針對每個磁盤,PST 記錄 磁盤狀態 + 伙伴個數 + 伙伴列表;
任意時間一個磁盤組只能有一個 active PST,默認一個故障組包含 1 個 PST;
PST 副本:PST shadow 為 active PST 的副本(兩者位于不同磁盤),其副本隨著 active PST 更新,完畢后兩者角色互換;
PST 最后 1 個塊用于磁盤心跳,1 避免磁盤組在不同集群中同時加載,類似控制文件
3.2 虛擬元數據
位于 ASM 文件中,分為 directories 和 registers,前者為 ASM 獨立訪問的元數據文件,文件號從 1 開始;后者文件號從 255 倒計數,為保留的 ASM 文件;
3.2.1 File directory
包含所有 ASM 文件的 metadata,與物理元數據的 AT 對應;文件號為 1;
Incarnation number + file size + file type + redundancy level + strip level + created/modified time + file layout
ASM 文件被刪除后文件號可重用,incarnation number 卻不可能相同,由此保證文件的唯一性;
File layout:由區間指針組成,包括區間對應的磁盤號和 AU 號,1 個 file directory 包含 60 個直接區間指針 和最多 300 個間接區間
3.2.2 Disk directory
包含磁盤組所有信息,與 PST 對應但比之更詳盡,文件號為 2;
3.2.3 ACD
類似 redo 日志,文件號 3;
每個 ASM 實例擁有 1 個 42M 的 ACD chunk,第一個塊包含打開 / 關閉狀態和檢查點(3 秒更新 1 次),其余循環利用;
3.2.4 COD
類似 undo,跟蹤耗時較長操作如 rebalance/ 文件創建,文件號 4;
若當前實例執行 rebalance 失敗,集群其他節點可重啟該操作;
其余還有 template directory, alias directory 以及 attribute directory;
3.2.5 Staleness registry
當 compatible.rdbms =11.1 且冗余類似為 normal 或 high 時才可用,文件號 254;
當磁盤 offline 時在 SR 中獲取 1 個 slot,為該磁盤每個 AU 分配 1 個 bit,若 offline 期間發生寫操作則設置 AU 的 bit 位;
當磁盤再次 online 時,ASM 根據 slot 中被更新的 bit 位從鏡像區間同步數據,以此完成 11R2 的 fast mirror resync;
4 與數據庫交互
創建文件
RDBMS 向 ASM 發送創建文件請求,ASM 分配空間并將 extent map 返回給 RDBMS,文件名格式為 + 磁盤組 / 數據庫名 / 文件類型 / file tag.file #.incarnation#;
RDBMS 初始化文件,由 COD 跟蹤尚未完成的文件創建;
RDBMS 提交完成請求,則 ASM 的 LGWR 清除 ACD,DBWR 更新 AT 以及 file directory 和 alias directory;若 RDBMS 撤銷創建請求,則 ASM 使用 COD 回滾;
刪除文件也由 COD 全程跟蹤并在失敗時回滾;
打開文件
RDBMS 發送請求給 ASM,后者將文件的 extent map 返回給 RDBMS;11G 會先發送 60 個直接區間,根據 RDBMS 請求再傳送間接區間;
讀錯誤
讀主區間遭遇錯誤時自動選擇鏡像區間,11g 還可自動對主區間的壞塊進行修復;
若 ASM 實例不能讀取虛擬元數據則強制卸載磁盤組,若不能讀取磁盤的物理元數據則將其 offline;
寫錯誤
若 ASM 實例收到寫錯誤則嘗試該磁盤 offline,并通過 PST 查看伙伴磁盤狀態,若很多伙伴磁盤也 offline 則強制卸載磁盤組;
將消息傳給其他 ASM 實例,由其更新 RDBMS 實例;
Compatible.rdbms =11.1 時 disk_repair_time 指定磁盤可 offline 最長時間;
關于 ASM 11R2 基本知識點有哪些問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注丸趣 TV 行業資訊頻道了解更多相關知識。