oracle資料庫損壞的恢復過程-基於IBM伺服器儲存

北亞資料恢復發表於2019-04-23

一、故障描述


整個伺服器的儲存空間由6塊SAS硬碟組成,其中5塊硬碟組成一個RAID5的陣列,剩餘1塊做成熱備盤使用。由於RAID5陣列中出現1塊硬碟故障,所以伺服器儲存中的熱備盤成功啟用,在進行同步的過程中又一塊硬碟出現故障,因此導致RAID5陣列癱瘓,上層LUN無法正常使用,伺服器崩潰。伺服器資料恢復工程師與硬體資料恢復工程師同時對客戶儲存進行檢測發現該伺服器儲存中的硬碟存在有物理故障。

二、伺服器儲存資料恢復故障檢測

IBM伺服器儲存的LUN都是基於RAID組的,因此要進行伺服器資料恢復需要先分析底層RAID組的資訊,然後根據分析的資訊重構原始的RAID組。分析每一塊資料盤,發現一塊盤的資料同其它資料盤不太一樣,初步認為可能是HotSpare盤。接著分析其他資料盤,分析Oracle資料庫頁在每個磁碟中分佈的情況,並根據資料分佈的情況得出RAID組的條帶大小,磁碟順序及資料走向等RAID組的重要資訊。

伺服器資料恢復中由於LUN是基於RAID組的,因此需要根據上述分析的資訊將RAID組最新的狀態虛擬出來。然後分析LUN在RAID組中的分配情況,以及LUN分配的資料塊MAP進行伺服器資料恢復。因此只需要將LUN的資料塊分佈MAP提取出來。然後針對這些資訊編寫相應的程式,LUN的資料MAP做解析,然後根據資料MAP並匯出LUN的資料。

三、儲存資料恢復實施方案

1、實施方案一

對恢復的伺服器儲存內包含Oracle資料庫的LUN進行JFS2檔案系統解析,並對檔案系統不完整的地方進行人工修復。利用自主開發的JFS2檔案系統解析工具解析恢復的LUN,然後恢復檔案系統中所有的Oracle資料庫檔案,並檢測Oracle資料庫的檔案是否完整。

對檢測有壞塊的資料庫檔案採用掃Oracle碎片的方式掃描所有磁碟,並將掃描的資料頁進行組合,然後人工將有壞塊的資料庫檔案給填補修復完整。

在恢復完所有Oracle資料庫之後,發現其應用SAP還是無法正常使用,因SAP應用的一些重要資料也是存放在損壞的儲存中,缺失這些資料的話SAP即使在資料庫完整的情況下也是無法正常使用,因此還需採用方案二來恢復所有SAP的重要資料。

2、實施方案二

對恢復的伺服器儲存內所有LUN都進行檔案系統解析,並將包含SAP的資料LUN進行檔案系統的一致性檢測。對檔案系統不完整的地方進行人工修復,最後恢復所有SAP及SAP Test的資料,在本次伺服器資料恢復案例中由於SAP的目錄及資料較多,因此恢復的過程比較負責。

利用專業手段對SAP的資料進行檢測,並對損壞的資料進行修復,確保恢復的所有SAP資料均是完整的,這樣才能保證SAP應用能夠完整啟動。

接下來利用恢復的SAP資料結合之前恢復的資料庫,即可啟動SAP及所有應用了。

四、啟動並修復Oracle資料及SAP應用

1、啟動資料庫並修復

把恢復的資料庫檔案還原到已搭建好的環境中,並嘗試啟動資料庫。在啟動過程中由於資料庫的一些臨時檔案校驗不一致導致資料庫啟動失敗,之後協調我們Oracle資料庫專家遠端對資料庫進行修復,在經過漫長時間的修復之後,資料庫啟動沒有問題,資料庫中的所有使用者及所有表均完整,之後嘗試啟動SAP。

2、啟動SAP並修復

將恢復的SAP檔案還原至已搭建好的環境中,並按照之前的啟動指令碼啟動SAP,之後SAP啟動正常,但SAP中使用者許可權及使用不太正常,SAP表現為沒有序列號。初步懷疑可能SAP的註冊檔案沒有恢復,重新檢測恢復過程,排查可能疏忽的步驟。結果確實因為檔案系統的損壞導致某些檔案沒有恢復,重新修復檔案系統,恢復這些資料。之後啟動SAP正常,使用也正常。

五、伺服器儲存資料恢復成功

由使用者方配合,啟動使用者伺服器內的Oracle資料庫,啟動SAP,並透過SAP客戶端驗證SAP中所有的資料是否完整,最有驗證結果為資料完整恢復,SAP能夠正常使用,本次伺服器儲存資料恢復成功。

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

相關文章