客戶的一臺DS5020 光纖存儲出現(xiàn)故障導致數(shù)據(jù)丟失,該存儲使用了16塊硬盤組成raid磁盤陣列。10號盤和13號盤掉線,6號盤警告,需要進行數(shù)據(jù)恢復。
Raid磁盤陣列故障情況:
通過IBM storage manager將當前存儲的完整日志狀態(tài)備份下來,解析備份出來的存儲日志獲得了關于邏輯卷結構的部分信息。將客戶服務器中所有磁盤按照固定順序排序移出槽位進行測試發(fā)現(xiàn)該磁盤陣列中除6號盤smart狀態(tài)為“警告”外其他硬盤均正常。
磁盤陣列數(shù)據(jù)恢復過程:
工程師首先在windows環(huán)境下把raid陣列中狀態(tài)正常的硬盤標記為脫機,然后對所有磁盤記性全盤操作,在備份過程中發(fā)現(xiàn)6號硬盤速度異常緩慢,初步推測原因可能是因為該盤中不穩(wěn)定扇區(qū)和壞道較多導致,于是更換專業(yè)針對壞道硬盤進行鏡像的設備單獨對6號硬盤進行鏡像操作,同時將設備中遇到壞道響應、等待時間和跳過壞扇區(qū)數(shù)據(jù)進行調(diào)整。
成都創(chuàng)新互聯(lián)公司提供成都網(wǎng)站設計、網(wǎng)站制作、外貿(mào)營銷網(wǎng)站建設、網(wǎng)頁設計,品牌網(wǎng)站建設,廣告投放等致力于企業(yè)網(wǎng)站建設與公司網(wǎng)站制作,10年的網(wǎng)站開發(fā)和建站經(jīng)驗,助力企業(yè)信息化建設,成功案例突破上千,是您實現(xiàn)網(wǎng)站建設的好選擇.
經(jīng)過鏡像操作后,在windows平臺下使用winhex鏡像的磁盤已經(jīng)全部鏡像完成,查看winhex生成的日志,發(fā)現(xiàn)在IBM storage manager/frombyte.com和硬盤SMART狀態(tài)中均沒有報錯的1號盤也存在壞道,10號和13號盤均存在大量不規(guī)律的壞道分布,根據(jù)壞道列表定位到目標鏡像文件分析發(fā)現(xiàn)該磁盤陣列中文件系統(tǒng)部分關鍵數(shù)據(jù)處于壞道區(qū),于是轉為通過6號硬盤的同條帶xor手動修復。我們借助數(shù)據(jù)恢復軟件將備份出來的raid中的所有數(shù)據(jù)展開,對ext3文件系統(tǒng)的逆向以及日志文件進行整理分析從而分析出raid磁盤陣列的盤序、raid塊大小,raid的校驗走向和校驗方式等必要信息。
通過分析出來的raid信息虛擬重組raid磁盤陣列并接卸ext3文件系統(tǒng)提取數(shù)據(jù)庫文件。在對數(shù)據(jù)庫文件的提取過程中出現(xiàn)報錯,數(shù)據(jù)庫報告imp-0008錯誤,數(shù)據(jù)恢復工程師重新對raid結構進行分析,再一次進行dmp文件和dbf原始庫文件進行提取,所有文件正常無報錯。
數(shù)據(jù)庫數(shù)據(jù)恢復流程
1.拷貝數(shù)據(jù)庫文件到原數(shù)據(jù)庫服務器,路徑為/home/oracle/tmp/syntong.作為備份。在根目錄下創(chuàng)建了一個oradata文件夾,并把備份的整個syntong文件夾拷貝到oradata目錄下。然后更改oradata文件夾及其所有文件的屬組和權限。
2.備份原數(shù)據(jù)庫環(huán)境,包括ORACLE_HOME下product文件夾下的相關文件。配置監(jiān)聽,使用原機中的splplus連接到數(shù)據(jù)庫。嘗試啟動數(shù)據(jù)庫到nomount狀態(tài)。進行基本狀態(tài)查詢后,了解到環(huán)境和參數(shù)文件沒有問題。 嘗試啟動數(shù)據(jù)庫到mount狀態(tài),進行狀態(tài)查詢沒有問題。啟動數(shù)據(jù)庫到open狀態(tài)。出現(xiàn)報錯:
ORA-01122: database file 1 failed verification check/frombyte.com
ORA-01110: data file 1: '/oradata/syntong/system01.dbf'
ORA-01207: file is more recent than control file - old control file
3.經(jīng)過進一步的檢測和分析,判斷此故障為控制文件和數(shù)據(jù)文件信息不一致,這是一類因斷電或突然關機等引起的常見故障。
4.對數(shù)據(jù)庫文件進行逐個檢測,檢測到所有數(shù)據(jù)文件沒有物理損毀。
5.在mount狀態(tài)下,對控制文件進行備份,alter database backup controlfile to trace as ' /backup/controlfile';對備份的控制文件進行查看修改,取得其中的重建控制文件命令。把這些命令復制到一個新建腳本文件controlfile.sql中。
6.關閉數(shù)據(jù)庫,刪除/oradata/syntong/下的3個控制文件。 啟動數(shù)據(jù)庫到nomount狀態(tài),執(zhí)行controlfile.sql 腳本。
SQL>startup nomount/frombyte.com
SQL>@controlfile.sql
7.重建控制文件完成后,直接啟動數(shù)據(jù)庫,報錯,需要進一步處理。
SQL> alter database open;
alter database open/frombyte.com
*
ERROR at line 1:
ORA-01113: file 1 needs media recovery
ORA-01110: data file 1: '/free/oracle/oradata/orcl/system01.dbf'
然后執(zhí)行恢復命令:
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
…
做介質恢復,直到返回報告,恢復完成。
8.嘗試open數(shù)據(jù)庫。
SQL> alter database open resetlogs;
9.數(shù)據(jù)庫啟動成功。把原來temp表空間的數(shù)據(jù)文件加入到對應的temp表空間中。
10.對數(shù)據(jù)庫進行各種常規(guī)檢查,沒有任何錯誤。
11.進行emp備份。全庫備份完成,沒有報錯。將應用程序連接到數(shù)據(jù)庫,進行應用層面的數(shù)據(jù)驗證。