Oracle資料庫恢複案例

來源:互聯網
上載者:User

標籤:資料庫資料   oracle   修複   

當我們在使用Oracle資料庫時,突然斷電,造成很多問題,致使舊資料丟失,影響了資料的正確性,破壞了資料庫。此時,使用者急切需求恢複資料。本文以此為例,講述資料庫資料恢複。

一、案例描述:

資料庫因突然斷電,資料庫啟庫報system01.dbf需要更多的恢複來保持一致性,資料庫無法開啟;資料庫沒有備份,歸檔日誌也不連續。客戶提供了資料庫的線上檔案,急需恢複zxfg使用者下的資料

 

、恢複流程:

 1 資料庫的故障檢測

 2 嘗試掛起資料庫並修複資料庫

3解析資料檔案

 4 驗證資料

 5匯出資料與交付資料(匯入)

 恢複資料          

1資料庫的故障檢測

利用DBV 命令檢測資料檔案的完整性

結果如下:

650) this.width=650;" title="1.png" src="http://s1.51cto.com/wyfs02/M01/7A/86/wKiom1arH8uRacvCAABA9IPe88E075.png" alt="wKiom1arH8uRacvCAABA9IPe88E075.png" />

 分析結果發現SYSAUX01.DBF檔案資料區塊(Data)檢測失敗40頁,索引頁(Index)檢測失敗29頁,說明SYSAUX01.DBF存在壞塊。

  結論:通過dbv對資料檔案的完整性檢驗,SYSAUX01.DBF存在壞塊,其他檢測的檔案完整。

  2 用客戶的資料庫本地掛起資料庫,嘗試修複資料庫。

  2.1 建立新的OS :windows server 2008 x86,安裝oracle 11.2.0.1.0 for 32-bit

  版本資料庫,掛起資料庫

650) this.width=650;" title="2.png" src="http://s5.51cto.com/wyfs02/M02/7A/86/wKiom1arIAiyN0W1AABOkbNaO7k734.png" alt="wKiom1arIAiyN0W1AABOkbNaO7k734.png" />

起庫報ORA-01110錯誤,System01.dbf需要更多一致性恢複。使用recover database 命令,利用線上日誌做介質恢複。

650) this.width=650;" title="3.png" src="http://s1.51cto.com/wyfs02/M00/7A/86/wKiom1arIE7BIdf-AAAVUPNUF5s858.png" alt="wKiom1arIE7BIdf-AAAVUPNUF5s858.png" />

資料庫的控制檔案已被修改,需要使用控制檔案恢複資料庫

650) this.width=650;" title="4.png" src="http://s3.51cto.com/wyfs02/M01/7A/86/wKioL1arIQmyArwbAABmkOf0gMI745.png" alt="wKioL1arIQmyArwbAABmkOf0gMI745.png" />

恢複資料庫需要2016_01_19的11號歸檔日誌。由于歸檔日誌丟失,使用cancel參數進行不完全恢複。

650) this.width=650;" title="5.png" src="http://s2.51cto.com/wyfs02/M01/7A/86/wKiom1arIQuia0_-AAAtB_ydNBA317.png" alt="wKiom1arIQuia0_-AAAtB_ydNBA317.png" />

再次執行alter database open 命令,資料庫開啟。

650) this.width=650;" title="6_副本.png" src="http://s5.51cto.com/wyfs02/M02/7A/86/wKioL1arIYzDSd6sAAAglGjjqgk441.png" alt="wKioL1arIYzDSd6sAAAglGjjqgk441.png" />

2.2 查詢執行個體狀態,資料庫報ora_00600錯誤;進行其他查詢,其中一些查詢可以進行,一些查詢報錯,而且報錯都是ora_00600錯誤。

650) this.width=650;" title="7.png" src="http://s1.51cto.com/wyfs02/M00/7A/86/wKioL1arIbGBvUJNAAAeb3ITkwo168.png" alt="wKioL1arIbGBvUJNAAAeb3ITkwo168.png" />

 2.4查看警告日誌 追蹤檔案查看內部錯誤碼;

  警告日誌部分內容如下:

  ORA-00600: internal error code, arguments: [13013], [5001], [267], [8456009], [5], [8456009], [17], [], [], [], [], []

  Non-fatal internal error happenned while SMON was doing logging scn->time mapping.

  進行各種嘗試 ,查閱大量資料。資料庫的這種內部錯誤,不能通過命令修複。嘗試匯出資料庫。

  2.3 用expdp/exp工具匯出資料庫;

    2.3.1使用expdp匯出資料庫

650) this.width=650;" title="8.png" src="http://s4.51cto.com/wyfs02/M02/7A/86/wKioL1arIfizlmDuAAAvlG_9Y64465.png" alt="wKioL1arIfizlmDuAAAvlG_9Y64465.png" />

 

 expdp 匯出資料庫報錯,和上面查詢報同樣的錯誤。sysaux01.dbf檔案損壞導致expdp工具不可用,匯出資料庫失敗。嘗試使用exp匯出資料庫

  2.3.2 使用exp匯出資料庫

  exp匯出資料庫,和上面報同樣的錯誤。資料庫報嚴重的內部錯誤,導致匯出工具exp不能使用,甚至一些查詢都不能進行,匯出資料庫失敗。

  3解析資料檔案,擷取使用者資料

  由上可知,資料庫的恢複已不可能。底層解析,解析資料檔案,擷取使用者物件。

  3.1 使用北亞自主研發DBF解析工具的,擷取資料。結果如下:

650) this.width=650;" style="width:670px;height:391px;" title="QQ圖片20160129151439.png" src="http://s1.51cto.com/wyfs02/M02/7A/86/wKioL1arIniBts5LAAF-PvzJcwI242.png" width="873" height="387" alt="wKioL1arIniBts5LAAF-PvzJcwI242.png" />

3.2 遷移對象到資料庫中

建立資料庫,在資料庫中建立使用者,為使用者指派資料表空間,解鎖使用者並授權。然後,通道資料的搭橋的方式,將解析到的使用者物件遷移到資料庫中。

四、驗證資料

使用toad for oracle工具驗證資料

650) this.width=650;" style="width:664px;height:397px;" title="10.png" src="http://s5.51cto.com/wyfs02/M01/7A/86/wKiom1arIo-BUD9VAAH6oMVxNWQ840.png" width="856" height="809" alt="wKiom1arIo-BUD9VAAH6oMVxNWQ840.png" />

五、匯出資料,交付使用者

5.1使用exp或者expdp匯出zxfg使用者下的所有對象,本例採用exp匯出資料

命令如下:

exp system/abc  file=C:\test\dump\zxfg.dmp log=C:\test\dump\zxfg.log owner=zxfg

650) this.width=650;" title="13.png" src="http://s1.51cto.com/wyfs02/M01/7A/86/wKioL1arIxqDUy59AACuc4uSwMA616.png" alt="wKioL1arIxqDUy59AACuc4uSwMA616.png" />

650) this.width=650;" title="14.png" src="http://s5.51cto.com/wyfs02/M00/7A/86/wKiom1arIxWwzJ6LAAB2LkCSqIM765.png" alt="wKiom1arIxWwzJ6LAAB2LkCSqIM765.png" />

 

  查看匯出資料庫的dmp檔案及匯出日誌,確保匯出檔案沒有問題。

  5.2使用者匯入資料,查看匯入資料的完整性。

  使用者驗證資料後,全部正確,並表示非常滿意

 

本文出自 “張宇(資料恢複)” 部落格,請務必保留此出處http://zhangyu.blog.51cto.com/197148/1739889

Oracle資料庫恢複案例

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.