遇到RAID5陣列硬碟出現問題的情況該如何解決?
【 故障描述 】
華為 S5300,12塊FC硬碟, 整個儲存 空間 由 450 GB和600G FC的硬碟組成,其中11塊硬碟組成一個RAID5的陣列,剩餘1塊做成熱 備盤使用。 由於 RAID5陣列中出現1塊硬碟故障,熱備盤成功啟用,在進行同步的過程中又一塊硬碟出現故障,因此導致RAID5陣列癱瘓,上層LUN無法正常使用。
【 恢復過程 】
一 、檢測磁碟
由於儲存是因為 RAID陣列中某些磁碟掉線,從而導致整個儲存不可用。因此接收到磁碟以後先對所有磁碟做物理檢測,檢測完後發現一塊硬碟有物理故障,其他硬碟沒有物理故障。
二 、備份資料
考慮到,資料的安全性以及可還原性,在做資料恢復之前需要對所有源資料做備份,以防萬一其他原因導致資料無法再次恢復。使用 dd命令或winhex工具將所有磁碟都映象成檔案 。
三 、故障分析
1 、分析故障原因
由於前兩個步驟並檢測到磁碟有物理故障,由此推斷可能是由於某些磁碟讀寫不穩定和物理故障導致故障發生。因為華為 S5300 控制器檢查磁碟的策略很嚴格,一旦某些磁碟效能不穩定, 華為 S5300 控制器就認為是壞盤,就將認為是壞盤的磁碟踢出 R AID組。而一旦 R AID組中掉線的盤到達到RAID級別允許掉盤的極限,那麼這個RAID組將變的不可用,上層基於RAID組的LUN也將變的不可用,之後又新建RAID,有一塊硬碟在同步的過程中被損壞,目前初步瞭解的情況為基於RAID組的LUN分配給linux系統使用,重要資料為Oracle 資料庫 。
2、分析RAID組結構
華為 S5300 儲存的 LUN都是基於RAID組的,因此需要先分析底層RAID組的資訊,然後根據分析的資訊重構原始的RAID組。分析每一塊資料盤, 發現一塊盤的資料同其它資料盤不太一樣,初步認為可能是 hot Spare盤。接著分析其他資料盤,分析Oracle資料庫頁在每個磁碟中分佈的情況,並根據資料分佈的情況得出RAID組的條帶大小,磁碟順序及資料走向等RAID組的重要資訊。
3、分析RAID組被同步損壞盤
根據上述分析的 RAID資訊,嘗試通過北亞自主開發的RAID虛擬程式將原始的RAID組虛擬出來 。但由於整個 RAID組中掉線兩塊盤並且有一塊硬碟資料被同步損壞。仔細分析每一塊硬碟中的資料,發現有一塊硬碟在同一個條帶上的資料和其他硬碟明顯不一樣,因此初步判斷此硬碟可能是被同步掉損壞的硬碟,通過北亞自主開發的RAID校驗程式對這個條帶做校驗,因此可以明確被同步損壞盤了。
4、分析RAID組中的LUN資訊
由於 LUN是基於 RAID組的,因此需要根據上述分析的資訊將RAID組最新的狀態虛擬出來 。然後分析 LUN在RAID組中的分配情況,以及LUN分配的資料塊MAP。因此只需要將LUN的資料塊分佈MAP提取出來。然後針對這些資訊編寫相應的程式,LUN的資料MAP做解析,然後根據資料MAP並匯出LUN的資料。
四 、 解析 EXT3 檔案系統
1、 解析 EXT3檔案系統
由於是使用熱備盤虛擬的 RAID結構,EXT3檔案系統無法正常掛載,所以只能提取oracle資料庫檔案,利用自主開發的檔案系統解析程式對其進行檔案系統的解析,匯出 o racle資料庫檔案,並把資料庫檔案移交給資料庫工程師進行校驗和驗證
五 、 檢測 Oracle資料庫檔案及修復
1 、檢測資料庫檔案是否完整
使用 Oracle 資料庫檔案檢測工具檢測每個資料庫檔案是否完整,發現有錯誤。再使用北亞自主研發的 Oracle 資料庫檢測工具(檢驗更嚴格),發現有部分資料庫檔案和日誌檔案錯誤, system 和 sysaux 表空間各存在 100 多壞塊; 3 個控制檔案都存在壞塊許多壞塊,控制檔案全部損壞; eschoolspace 表空間的 3 個檔案的壞塊更多,達到 1000 個; undotbs02 丟失;資料庫工程師對此類檔案進行修復,如下圖:
2 、修復 Oracle 資料庫
我們建立了控制檔案,建立 undo 表空間,啟動資料庫到 mount 。 system 資料檔案壞塊使得資料庫不能 open 。 各種隱含引數也不能繞過 system 的壞塊;搭建資料庫環境。使用 dmp 檔案還原資料庫。使用 3 月 9 號之後的匯入,都報錯,大約只能匯入 10G 左右的資料,如下圖:
六 、資料驗證
由使用者方配合,啟動 Oracle 資料庫,在本地虛擬機器安裝 OA 客戶端。通過 OA 客戶端對資料記錄進行驗證,並且使用者安排不同部門人員進行遠端驗證。
七 、資料恢復結論
由於故障發生後又重建 RAID ,導致一塊盤 的資料被同步損壞 ,對後期的資料恢復造成了困難。因為熱備盤同步了一段時間寫入了部分資料,所以使用熱備盤裡面的資料進行恢復,只能恢復部分資料,只有 3 月 9 日之前的資料。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31380569/viewspace-2650518/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 如何解決input遇到fixed,absolute佈局出現的問題
- 遇到EXT3 MYSQL檔案遭到惡意刪除的情況,該如何解決?MySql
- axios get請求如果遇到引數有陣列的情況怎麼解決iOS陣列
- raid5陣列兩塊硬碟出現物理故障的資料恢復過程AI陣列硬碟資料恢復
- RabbitMQ如何解決各種情況下丟資料的問題MQ
- 請問python遇到這種情況怎麼解決?Python
- 在迴圈陣列時使用splice()方法刪除陣列遇到的問題陣列
- 父母的養老問題該如何解決?
- raid5陣列2塊硬碟掉線應該資料恢復還是強制上線AI陣列硬碟資料恢復
- 磁硬碟陣列後如何檢測和監控硬碟健康狀況?硬碟陣列
- 面對硬碟磁頭損壞問題,資料該如何解救?硬碟
- 1_使用swiper陣列物件迴圈圖片遇到的問題陣列物件
- raid5陣列兩塊硬碟離線資料恢復過程AI陣列硬碟資料恢復
- 磁碟陣列中raid5壞了一個硬碟資料恢復陣列AI硬碟資料恢復
- sqlsugar 實現實體類中欄位是字串陣列情況SqlSugar字串陣列
- 帝國cms如何解決截圖出現黑邊的問題
- React獲取資料,假如為陣列,使用map出現的問題React陣列
- 遇到一個建表時出現的問題
- Nginx unexpected end of file 配置證書遇到問題,如何解決?Nginx
- Win10系統無法更改ip提示出現了一個意外的情況如何解決Win10
- 如何解決使用JSON.stringify時遇到的迴圈引用問題JSON
- raid5磁碟陣列2塊硬碟離線資料恢復過程AI陣列硬碟資料恢復
- 遇到問題的解決方法
- php陣列問題PHP陣列
- 如何解決各個行業出現的資料洩露問題?行業
- 如何解決Hive中經常出現的資料傾斜問題Hive
- 如何解決dell win10你的電腦遇到問題需要重新啟動的問題Win10
- macOS Big Sur更新後你遇到了哪些問題如何解決Mac
- 關於Android安裝apk出現解析包異常問題情況總結AndroidAPK
- php訪問目標網站時出現亂碼的情況PHP網站
- leetcode題解(陣列問題)LeetCode陣列
- 陣列中每個陣列元素出現的次數陣列
- 微服務之間的資料依賴問題,該如何解決?微服務
- 年底缺少成本票的企業該如何解決稅收問題?
- thinkphp5丟失日誌問題,該如何解決?PHP
- ubuntu檢視硬碟掛載情況Ubuntu硬碟
- 找到陣列中出現特定次數數字的問題陣列
- 一個關於JS解決陣列相乘問題JS陣列