服務(wù)器存儲數(shù)據(jù)恢復(fù)環(huán)境&故障情況:
一臺光纖存儲中有一組由16塊硬盤組成的raid。
該存儲出現(xiàn)故障導(dǎo)致數(shù)據(jù)丟失。RAID中2塊盤掉線,還有1塊盤smart狀態(tài)為“警告”。
服務(wù)器存儲數(shù)據(jù)恢復(fù)過程:
1、通過該存儲自帶的存儲管理軟件將當(dāng)前存儲的完整日志狀態(tài)備份,解析備份出來的存儲日志,獲取到關(guān)于邏輯卷結(jié)構(gòu)的部分信息。
2、在windows環(huán)境下把raid中狀態(tài)正常的硬盤標(biāo)記為脫機,然后將所有磁盤進(jìn)行全盤鏡像,在鏡像過程中發(fā)現(xiàn)smart狀態(tài)為“警告”的那塊硬盤鏡像速度異常緩慢,數(shù)據(jù)恢復(fù)工程師推測問題原因是該盤存在不穩(wěn)定扇區(qū)和壞道。更換專業(yè)設(shè)備單獨對該盤做鏡像,將專業(yè)設(shè)備中的“遇到壞道響應(yīng)”、“等待時間”和“跳過壞扇區(qū)數(shù)據(jù)”等參數(shù)進(jìn)行調(diào)整后進(jìn)行備份。
3、將存儲中所有硬盤都鏡像完成后,查看鏡像工具生成的日志,發(fā)現(xiàn)在存儲管理軟件中和SMART狀態(tài)中均沒有發(fā)現(xiàn)問題的1塊盤也存在壞道,掉線的2塊盤均存在大量不規(guī)律的壞道分布。根據(jù)壞道列表定位到目標(biāo)鏡像文件,分析后發(fā)現(xiàn)該磁盤陣列中文件系統(tǒng)的部分關(guān)鍵數(shù)據(jù)處于壞道區(qū)。于是北亞企安數(shù)據(jù)恢復(fù)工程師通過同條帶xor手動修復(fù)。
4、將備份出來的raid中的所有硬盤的數(shù)據(jù)展開,通過對ext3文件系統(tǒng)的逆向分析以及對日志文件的分析,獲取到raid的盤序、raid塊大小,raid的校驗走向和校驗方式等重組raid所必需的信息。
5、通過分析獲取到的raid信息虛擬重組raid,然后解析ext3文件系統(tǒng)并提取數(shù)據(jù)庫文件。
6、在提取數(shù)據(jù)庫文件的過程中出現(xiàn)報錯,數(shù)據(jù)庫報告imp-0008錯誤。于是數(shù)據(jù)恢復(fù)工程師重新對raid結(jié)構(gòu)進(jìn)行分析,再一次提取dmp文件和dbf原始庫文件,這回所有文件正常且無報錯。
服務(wù)器存儲中數(shù)據(jù)庫數(shù)據(jù)恢復(fù)過程:
1、拷貝數(shù)據(jù)庫文件到原服務(wù)器中/home/oracle/tmp/syntong目錄下作為備份。在根目錄下創(chuàng)建了一個oradata文件夾,將整個syntong文件夾拷貝到oradata目錄下。然后更改oradata文件夾及其中所有文件的屬組和權(quán)限。
2、備份原數(shù)據(jù)庫環(huán)境,包括ORACLE_HOME下product文件夾下的相關(guān)文件。配置監(jiān)聽,使用原服務(wù)器中的splplus連接到數(shù)據(jù)庫。嘗試啟動數(shù)據(jù)庫到nomount狀態(tài)。進(jìn)行基本狀態(tài)查詢,發(fā)現(xiàn)環(huán)境和參數(shù)文件沒有問題。 嘗試啟動數(shù)據(jù)庫到mount狀態(tài),進(jìn)行狀態(tài)查詢也沒有發(fā)現(xiàn)問題。啟動數(shù)據(jù)庫到open狀態(tài)。
出現(xiàn)報錯:
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
3、經(jīng)過進(jìn)一步的檢測和分析,初步判斷出現(xiàn)此報錯的原因是控制文件和數(shù)據(jù)文件信息不一致,這是一類通常由于斷電或突然關(guān)機所引起的故障。
4、逐個檢測數(shù)據(jù)庫文件,沒有發(fā)現(xiàn)有數(shù)據(jù)庫文件被物理破壞。
5、在mount狀態(tài)下備份控制文件,alter database backup controlfile to trace as ' /backup/controlfile'。查看&修改備份的控制文件,獲取到其中的重建控制文件命令。將這些命令復(fù)制到一個新建腳本文件controlfile.sql中。
6、關(guān)閉數(shù)據(jù)庫,刪除/oradata/syntong/下的3個控制文件。 啟動數(shù)據(jù)庫到nomount狀態(tài),執(zhí)行controlfile.sql腳本。
SQL>startup nomount
SQL>@controlfile.sql
7、重建控制文件后,直接啟動數(shù)據(jù)庫,再次報錯,需要進(jìn)一步處理。
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'
然后執(zhí)行恢復(fù)命令:
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
…
做介質(zhì)恢復(fù),直到返回報告,恢復(fù)完成。
8、嘗試open數(shù)據(jù)庫。
SQL> alter database open resetlogs;
9、數(shù)據(jù)庫啟動成功。把原來temp表空間的數(shù)據(jù)文件加入到對應(yīng)的temp表空間中。
10、對數(shù)據(jù)庫進(jìn)行各種常規(guī)檢查,沒有發(fā)現(xiàn)任何錯誤。
11、進(jìn)行emp備份。全庫備份完成,沒有報錯。將應(yīng)用程序連接到數(shù)據(jù)庫,在應(yīng)用層面驗證數(shù)據(jù),也沒有發(fā)現(xiàn)問題。
12、經(jīng)過用戶方仔細(xì)檢驗后,確認(rèn)恢復(fù)出來的數(shù)據(jù)庫數(shù)據(jù)沒有問題,認(rèn)可數(shù)據(jù)恢復(fù)結(jié)果。
審核編輯 黃宇
-
服務(wù)器
+關(guān)注
關(guān)注
12文章
9024瀏覽量
85186 -
數(shù)據(jù)恢復(fù)
+關(guān)注
關(guān)注
10文章
550瀏覽量
17392
發(fā)布評論請先 登錄
相關(guān)推薦
評論