ASM 翻譯系列第十一彈:高階知識 Offline or drop?
原作者:Bane Radulovic
譯者: 莊培培
稽核: 魏興華 沃趣科技
DBGeeK社群聯合出品
當一個ASM磁碟不可用時,ASM會把它從磁碟組裡移除,對嗎?要看情況,通常取決於ASM版本和磁碟組的冗餘級別。因為一個external冗餘的磁碟組會直接被dismount,所以主要關注normal和high冗餘磁碟組的情況。ASM 10g版本,磁碟會被直接drop。從11gR1,一個磁碟不可用時會先被offline,此時disk repair計時器開始介入,如果計時器達到磁碟組DISK_REPAIR_TIME 屬性值時,這個磁碟會從所屬的磁碟組中drop掉。如果這個磁碟在計時器過期前恢復可用,那麼它的狀態會變回online,不會被drop。但是ASM是如何發現磁碟恢復可用又有什麼機制將它恢復online呢?
Unavailable
當一個磁碟不能被ASM或者ASM客戶端讀或寫時,會被認為不可用。資料庫是一種典型的ASM客戶端,但ASM客戶端並不只限於是資料庫。磁碟會因為各種原因變成不可用,本地硬碟的SCSI線纜受損,儲存的SAN交換機或者網路故障,NFS空間的伺服器故障,雙活場景的站點故障,又或是磁碟本身故障等各種場景。無論是哪種情況,ASM或者是ASM客戶端會報IO錯誤,然後ASM會進行相應的處理。
Drop
在ASM 10G時,ASM會立即Drop變成不可用的磁碟。這會觸發一個嘗試恢復資料冗餘的重平衡操作。一旦重平衡過程完成,資料冗餘度會恢復,同時磁碟會被移除出磁碟組。一旦磁碟不可用的故障被解決,可以透過alter diskgroup命令將磁碟重新新增回磁碟組。 例如:alter diskgroup DATA add disk 'ORCL: DISK077'; 這又會再次觸發一個重平衡操作,一旦重平衡過程完成,磁碟會恢復成為磁碟組成員。 但是如果多個磁碟同時發生故障,又或者一個磁碟故障在重平衡過程中又有磁碟故障會導致什麼結果?這取決於多個因素,磁碟組的冗餘度、磁碟是否來自於相同或不同的failgroup和故障磁碟是否是partner關係。 在一個normal冗餘級別的磁碟組,ASM能容忍來自於一個failgroup中的一塊或者多塊,甚至是全部的磁碟故障。如果來自於不同的failgroup的磁碟變成不可用,僅當它們之間不存在partner關係時,ASM才能容忍。 這裡提到的“容忍"的具體含義是指磁碟組能繼續online同時ASM客戶端訪問不受影響。 在一個high冗餘級別的磁碟組,ASM能容忍僅來自於兩個failgroup中的一塊或者多塊,甚至是全部的磁碟故障。如果來自於兩個以上failgroup的磁碟變成不可用,partner關係規則仍然有效。基本上,ASM能容忍任意數量的磁碟變成不可用,只要它們之間不存在partner關係時。
Offline
當一個磁碟被drop,整個磁碟組需要為此進行rebalance,整個過程需要耗費大量的時間。在此期間,其他磁碟也可能會發生故障,使得資料丟失的風險大大增加。為解決這個問題,在11gR1開始,ASM引入了fast disk resync特性。ASM不再立即drop不可用的磁碟,而是先置為offline狀態。這樣做的意義是能讓ASM管理員被告知有磁碟發生故障後在disk repair time計時器到達閾值前修復故障。 預設的disk repair計時器閾值是3.6小時。這個閾值是可以透過alter diskgroup命令來調整的,假設要設定為12小時,命令如下:alter diskgroup DATA set attribute 'DISK_REPAIR_TIME' = '12h'; 在磁碟處於offline的這段時間裡,ASM持續跟蹤需要在offline磁碟上做的修改操作。如果磁碟在計時器到達閾值前恢復可用並且恢復到online狀態,那麼ASM會將這些修改操作應用到磁碟上去。這就是fast disk resync特性的具體用途。 如果導致磁碟離線的故障不能解決,在計時器到達閾值後,磁碟會從磁碟組中被drop掉。
Online
當一個系統管理員或者ASM管理員修復了導致磁碟不可用的故障後(可能是更換了某條故障的線纜),接下來該怎麼做能讓磁碟恢復online狀態?這個過程能否能自動呢? 答案同樣也是看情況。如果是Exadata或者是Oracle Database Appliance,磁碟會被自動online。其他情況是ASM管理員需要透過alter diskgroup命令將磁碟恢復為online狀態。 例如: alter diskgroup DATA online disk 'ORCL: DISK077'; 或者 alter diskgroup DATA online all;
Conclusion
知道在不同的故障場景下會發生什麼事情是這件非常有價值的事情,比如:目前使用的ASM版本分別能做什麼和不能做什麼,當前使用的磁碟組冗餘度能提供什麼樣的保護級別。關於譯者莊培培,沃趣科技資料庫售前工程師,主要負責資料庫平臺架構方案設計、產品驗證測試。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/196700/viewspace-2154407/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ASM 翻譯系列第十三彈:ASM 高階知識 - Forcing the issueASM
- java知識點-高階Java
- Android高階知識點Android
- Draft 文件翻譯 - 高階主題 - DecoratorsRaft
- MySQL高階知識——Show ProfileMySql
- 高階前端知識架構前端架構
- Draft 文件翻譯 - 高階主題 - 管理焦點Raft
- ElasticSearch 高階 REST 客戶端翻譯 (待續......)ElasticsearchREST客戶端
- Mysql知識樹整理【3】 ---高階MySql
- 網頁高階知識點(二)網頁
- 翻譯 - ASP.NET Core 基本知識 - 配置(Configuration)ASP.NET
- [翻譯] 用 CSS 背景混合模式製作高階效果CSS模式
- Python高階知識點學習(五)Python
- Kotlin知識歸納(十一) —— 高階函式Kotlin函式
- Vuejs進階知識(十八)【component 進階知識】VueJS
- 第十一章、高階語法與用法
- 高階 Java 面試通關知識點整理Java面試
- 翻譯 - ASP.NET Core 基本知識 - Web 主機 (Web Host)ASP.NETWeb
- 翻譯 - ASP.NET Core 基本知識 - 通用主機 (Generic Host)ASP.NET
- 前端工程基礎知識點–Browserslist (基於官方文件翻譯)前端
- 前端工程基礎知識點--Browserslist (基於官方文件翻譯)前端
- 第四期知識與認知圖譜:神經機器翻譯也應該嵌入「知識」
- (小白學JAVA之)Java高階特性知識點梳理Java
- JAVA高階面試必過知識點彙總Java面試
- 後端知識點總結——NODE.JS(高階)後端Node.js
- 高階 Java 必須突破的 10 個知識點!Java
- 高階Java必須突破的10個知識點!Java
- 高階前端進階系列 - webview前端WebView
- Android基礎進階之EffectiveJava翻譯系列(第八章:異AndroidJava
- 前端知識點總結——JS高階(持續更新中)前端JS
- 高階Java程式設計師要具備哪些知識Java程式設計師
- js 進階知識JS
- 離線翻譯軟體:PROMT Offline Translator English Pack for mac v2.2啟用版Mac
- Quartz.NET 2.x 文件翻譯 - Lesson 11:Advanced (Enterprise) Features 高階功能quartz
- [譯] RxJS 高階快取JS快取
- [譯] 深入 React 高階元件React元件
- 合格前端系列第十一彈-初探 Nuxt.js 祕密花園前端UXJS
- Swift-語音識別、翻譯Swift