天天看點

Raid資訊丢失資料恢複及oracle資料庫恢複驗證方案

早些時候,有個客戶14塊盤的磁盤陣列出現故障,需要恢複的資料是oracle資料庫,客戶在尋求資料恢複技術支援,要求我提供詳細的資料恢複方案,以下是提供給客戶的詳細資料恢複解決方案,本方案包含Raid資料恢複和oracle資料庫的恢複驗證。

一、對磁盤陣列的恢複方案

   磁盤陣列常見故障表現為:

A、陣列資訊丢失,導緻磁盤陣列在作業系統環境中檢視不到;

B、陣列中多個硬碟掉線,導緻陣列癱瘓;

C、人為的重新配置raid資訊或Rebuild或者初始化等;

    D、陣列中某塊盤掉線一段時間後,又重新上線參與盤陣工作,導緻整個陣列資料部分資料正常,另一部分資料不正常。

Raid資料恢複步驟是:

1、 第一步是做鏡像:對每個硬碟做個鏡像檔案,存儲到另外的空間上,對原始資料盤隻讀一次。如果盤陣的硬碟數量很多,單個硬碟容量很大的話,則需要很大的存儲空間來存放這些鏡像檔案。這一步需要搭建的硬體環境是:準備一個空間足夠大的可用的磁盤陣列,用來存放故障陣列的所有硬碟的鏡像檔案。硬碟鏡像檔案就是把整個硬碟通過硬體或者軟體環境複制出跟硬碟完全一樣的檔案,在以後的恢複過程中,隻用這個鏡像檔案去分析和重組資料,這樣就保證整個恢複過程安全性,原始硬碟資料不會有二次損壞。

2、 第二步是分析底層資料:因為每個硬碟已經有了鏡像檔案,對鏡像檔案的分析等同于對原始資料的分析。在這一步分析中,我們可以确定出組成盤陣的硬碟數量,硬碟在磁盤陣列中的順序,RAID配置中的塊大小,資料走向等。如果有資料不新鮮的硬碟,我們也可以分析出來,在以後的重組中去掉這塊盤就可以了。底層資料分析在WINDOWS系列的檔案系統相對容易,但是在UNIX系列的檔案系統難度就加大,目前我們在LINUX、AIX、SOLARIS、HP-UX、SCO UNIX、FREEBSD等都有成功的案例。

3、 第三步是重組資料:通過第二步地分析,得出一系列磁盤陣列參數—-硬碟數量、硬碟順序、塊大小、資料走向等,然後用D-Recovery For RAID軟體對所有硬碟進行資料重新組合,寫到另外的空間中。在這個過程中,我們需要準備的硬體環境是:準備一個空間足夠大的可用的磁盤陣列,用于把重新組合出來的資料存放在這個空間上。

4、 第四步是恢複最終資料:資料重新組合出來以後,我們這一步要做的工作是把客戶最終想要的資料恢複出來。如果是WINDOWS檔案系統,這一步很容易完成;如果是UNIX檔案系統,我們就要把組合出來的資料盤陣挂接到相應的UNIX環境下,然後在這個環境中找出客戶想要的資料,把資料導到另外可用的空間上,以備客戶驗證資料。當然,也可以用D-Recovery For RAID軟體直接把資料導出,存放到新的存儲上。

5、 第五步是驗證資料的正确性:客戶資料在第四步已經COPY出來了,有些資料是直接看不出是否正确的,就像ORACLE資料庫一樣,恢複出來的是好多個檔案,單個檔案是沒辦法驗證的。這就需要搭建一個ORACLE環境,把恢複出來的資料還原到ORACLE環境中,才能驗證其正确性。其它資料庫檔案也是需要在相應的環境中驗證的。

     磁盤陣列最典型的故障恢複:

陣列資訊完好,磁盤分區也能通路正常,但是資料就是打不開或者部分資料正常,部分資料不正常。特别是對oracle資料庫來說,必須全部的庫檔案正常,資料庫才正常。

舉個案例說明:有個客戶給我們拿來3塊盤做資料恢複,客戶的對故障現象是這樣描述的:這3塊盤是配成raid5,伺服器在一個月前1号盤亮黃燈,當時沒有在意,後來在前天機房停電,伺服器也關閉了,當伺服器再起來的時候,啟動一切正常,1号盤也正常,不亮黃燈。但是系統起來以後,發現oracle資料庫啟動不正常。别的檔案在一個月前放到伺服器上的大都正常,就是這個月的檔案大都不正常。

經過我們的分析,發現1号盤原來亮黃燈以後就不參與到RAID5裡頭工作了,2号盤和3号盤在缺1号盤的情況下繼續工作一個多月。從底層資料分析知道,1号盤資料不新鮮,當機器重新開機以後,RAID卡沒有報錯,1号盤又參與RAID5資料組合,這樣不新鮮的資料盤參與資料組合,自然導緻部分可用部分不可用。我們缺1号盤,用D-Recovery For RAID從2号盤和3号盤重組出客戶的資料,驗證ORACLE資料庫也全部通過。

         如果是由于磁盤陣列故障導緻的資料庫不正常,整個恢複過程所花費的時間根據磁盤陣列的硬碟數量和硬碟大小來決定,一般不會超過一個星期。

二、對ORACLE資料庫的恢複方案

ORALCE資料庫相關檔案恢複完成以後,我們還沒辦法直接判斷恢複出來的資料庫内容是否正确,需要把ORACLE資料庫執行個體還原到ORACLE環境下才能驗證。這就需要搭建好ORACLE環境,然後把恢複出來的ORACLE資料庫執行個體在該環境下啟動資料庫,如果啟動正常,那麼資料恢複就順利完成,如果資料庫啟動異常,則根據報錯資訊進行下一步分析。

ORALCE出錯原因非常多,可以根據ORACLE錯誤代碼來進行分析和解決。

  比如錯誤代碼為:ORA-01650:unable to extend rollback segment NAME by NUM intablespace NAME

  産生原因:上述ORACLE錯誤為復原段表空間不足引起的,這也是ORACLE資料管理者最常見的ORACLE錯誤資訊。當使用者在做一個非常龐大的資料操作導緻現有復原段的不足,使可配置設定用的復原段表空間已滿,無法再進行配置設定,就會出現上述的錯誤。

解決方式:使用“ALTER TABLESPACE tablespace_name ADD DATAFILE filename SIZE size_of_file”指令向指定的資料增加表空間,根據具體的情況可以增加一個或多個表空間。

聲明:作者達思資料恢複技術專家覃廷良,本文首發

http://www.bnuol.com

,在donews.com,51cto,techweb,新浪,百度等資料恢複技術部落格上轉發.歡迎轉發,轉發請保留作者及出處。