服務器存儲數據恢復環境&故障:
一臺某品牌DS4700存儲中有14塊硬盤組建raid,存放的是oracle數據庫。存儲中有兩塊硬盤的指示燈亮黃色,raid崩潰,卷無法掛載,業務全部癱瘓。
服務器存儲故障檢測:
服務器數據恢復工程師通過IBM storage manager連接存儲查看服務器存儲的當前狀態,發現邏輯卷狀態失敗。對物理磁盤狀態進行查看,發現13號磁盤狀態為“警告”,10號和11號磁盤狀態為“失敗”。通過IBM storage manager對當前存儲的全部日志進行備份并解析邏輯卷結構信息。
服務器存儲數據恢復過程:
1、將服務器存儲中全部磁盤編號后取出槽位,由硬件工程師進行物理故障檢測。經過初步檢測,所有硬盤均可以正常識別,13號盤SMART狀態為“警告”,和在IBM storage manager中的狀態一致。
2、服務器數據恢復工程師在windows環境下的磁盤管理器中將可以識別的磁盤標記為脫機狀態,使用工具將所有磁盤進行扇區級別鏡像操作(在鏡像過程中13號硬盤的鏡像速度極其緩慢,初步判斷該盤存在壞道或者不穩定/損壞扇區,需要使用專業設備處理)。在使用專業設備對13號硬盤做鏡像的過程中觀察鏡像狀態,發現13號盤的壞道并不多,只是存在大量不穩定扇區。調整該磁盤的鏡像策略后繼續鏡像。鏡像完成后將所有磁盤按照編號還原到原存儲中。后續的數據分析和數據恢復操作都基于鏡像文件進行,避免對原始磁盤數據造成二次破壞。
3、基于鏡像文件查看生成的日志,發現在IBM storage manager和硬盤SMART狀態中均沒有發現異常的1號盤、10號和11號盤均存在大量不規律的壞道分布。結合壞道列表情況進行分析,EXT3文件系統中的部分關鍵性源數據處于壞道區域,北亞企安數據恢復工程師通過13號硬盤的鏡像文件進行同一條帶的xor,
并根據文件系統的上下關系手動修復損壞的文件系統。
4、通過對ext3文件系統的逆向以及日志文件的分析獲取到盤序、raid校驗方向、raid塊大小、raid校驗方式等信息,利用獲取到的信息虛擬重組raid。重組完成后解析EXT3文件系統,將oracle數據庫中的dmp文件進行部分提取。
5、在恢復dmp的過程中出現內容為“imp-0008”的報錯,經過分析發現報錯原因是dmp文件有問題。再次重組raid并重新導出dmp文件和dbf原始庫文件進行測試,dbf原始庫文件均能通過測試。
6、把數據庫文件拷貝到原數據庫服務器中,路徑為“/home/oracle/tmp/syntong”。在根目錄下創建一個oradata文件夾,把整個syntong文件夾拷貝到oradata目錄下,更改oradata文件夾及其所有文件的屬組和權限。
7、備份原數據庫環境,包括ORACLE_HOME下product文件夾下的相關文件。配置監聽,使用splplus連接到數據庫,嘗試啟動數據庫到nomount狀態。進行狀態查詢沒有發現環境和參數文件有問題。 嘗試啟動數據庫到mount狀態,進行狀態查詢沒有問題。啟動數據庫到open狀態。出現報錯:
ORA-01122: database file 1 failed verification check
ORA-01110: data file 1: '/oradata/syntong/system01.dbf'
ORA-01207: file is more recent than control file - old control file
經過檢測和分析,判斷此故障為控制文件和數據文件信息不一致,這是一種常見的由于異常關機所引起的故障。
8、對數據庫文件進行逐個檢測,經過檢測沒有發現有數據庫文件存在物理損毀的情況。
9、在mount狀態下備份控制文件,alter database backup controlfile to trace as ' /backup/controlfile';對備份的控制文件進行查看修改,獲取到其中的重建控制文件命令。把這些命令復制到一個新建腳本文件controlfile.sql中。
10、關閉數據庫,刪除/oradata/syntong/下的3個控制文件。 啟動數據庫到nomount狀態,執行controlfile.sql 腳本。
SQL>startup nomount
SQL>@controlfile.sql
11、重建控制文件后,直接啟動數據庫報錯,需要進一步處理。
SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-01113: file 1 needs media recovery
ORA-01110: data file 1: '/free/oracle/oradata/orcl/system01.dbf'
然后執行恢復命令:
recover database using backup controlfile until cancel;
Recovery of Online Redo Log: Thread 1 Group 1 Seq 22 Reading mem 0
Mem# 0 errs 0: /free/oracle/oradata/orcl/redo01.log
…
做介質恢復,直到返回報告,恢復完成。
12、嘗試open數據庫。
SQL> alter database open resetlogs;
13、數據庫啟動成功。把原來temp表空間的數據文件加入到對應的temp表空間中。
14、對數據庫進行各種常規檢查,沒有發現任何錯誤。
15、進行emp備份,全庫備份完成,沒有報錯。將應用程序連接到數據庫,進行應用層面的數據驗證,一切正常,本次數據恢復工作完成。
審核編輯 黃宇
-
服務器
+關注
關注
12文章
9205瀏覽量
85558 -
RAID
+關注
關注
0文章
278瀏覽量
35112 -
數據恢復
+關注
關注
10文章
577瀏覽量
17489 -
數據庫
+關注
關注
7文章
3816瀏覽量
64465
發布評論請先 登錄
相關推薦
評論