用Oracle歸檔日志進行數據庫恢復的方法


用Oracle歸檔日志進行數據庫恢復的方法

博客分類:
 

Oracle數據庫備份的方法很多,下面就為您介紹用Oracle歸檔日志進行數據庫恢復的方法,希望對您學習Oracle歸檔日志和數據庫備份能有所幫助。

  聯機重演日志沒有丟失應使用完成恢復,如聯機重演日志損壞,而又沒有備份,就只能進行不完全恢復。

  一、完全恢復:

  1.使用命令“svrmgrl”調用行方式服務器管理;

  2.輸入命令“connect internal”,然后輸入命令“startup mount’;

  3.輸入命令“recover database;”

  4.按下ENTER,接受默認值。

  5.然后輸入命令“alter database open;”完成數據庫恢復。

  二、不完全恢復

  警告:

  應用不完成恢復前,必須將數據庫做一次完全冷備份,因為應用不完全恢復后,聯機重演日志將重置,以前的所有日志不可用。

  如果恢復不成功,數據庫就不能使用了。再次強調,做完全冷備份后再應用不完全恢復。

  1)基於變化的恢復(change-based recovery)

  要執行基於變化的恢復,需要知道丟失日志之前的系統寫入歸檔重演日志的最大的變化號(SCN),然后可以啟動恢復語句恢復數據庫直到改變 scn_number,其中比scn_number是寫到已歸檔重演日志文件順序號386的SCN(即,小於丟失日志順序號387的SCN)。可以從 V$log_history視圖中得到SCN信息。

  select first_change# from v$log_history where sequence#=387;

  其中387為最后一個有效的日志文件號加1,該例是查找386.

  知道了SCN后,使用下述步驟完成恢復

  1.使用命令“svrmgrl”調用行方式服務器管理;

  2.輸入命令“connect internal”,然后輸入命令“startup mount’;

  3.輸入命令“recover database until change 9999;”

  4.在回答Oracle第一個歸檔重演日志建議信息時,輸入“auto”,Oracle在找到第387號重演日志之前停止恢復。

  5.用命令“alter database open resetlogs;”打開數據庫。(應用該命令前請確認數據庫已備份,如打開失敗,日志將不可用)

  2).基於停止恢復(cancel-based recovery)

  1.使用命令“svrmgrl”調用行方式服務器管理;

  2.輸入命令“connect internal”,然后輸入命令“startup mount’;

  3.輸入命令“recover database until cancel;”,Oracle提示需要的第一個歸檔重演日志文件名.按下ENTER鍵接受缺省文件名,並且—路ENTER直到詢問順序號387的日志。輸入“cancel”,停止恢復操作。

 

4.用命令“alter database open resetlogs;”打開數據庫。(應用該命令前請確認數據庫已備份,如打開失敗,日志將不可用)

  3).基於時間的恢復(time-based recovery)

  為使用基於時間的恢復,必須知道記錄在V$log_history歸檔重演日志序號387(丟失重演日志)的時間,通過執行查詢語句 “select time from v$log_history where sequence#=387;”得到。本例得到的時間是:2002-06-23 14:42:04

  現在開始實施恢復。

  1.使用命令“svrmgrl”調用行方式服務器管理;

  2.輸入命令“connect internal”,然后輸入命令“startup mount’;

  3.輸入命令“recover database until time '2002/06/23 14:42:04';”,Oracle提示需要的第一個歸檔重演日志文件名,輸入“auto”,Oracle恢復歸檔重演日志直到序號為387的日志,停止恢復操作。

  4.用命令“alter database open resetlogs;”打開數據庫。(應用該命令前請確認已數據庫已備份,如打開失敗,日志將不可用)

  提示: 使用基於時間的恢復,時間的格式是YYYY/MM/DD HH24:MI:SS,並且用單引號括起。

  附:如何啟用Oracle的歸檔方式

  1.參照以下內容編輯init.ora文件:

  log_archive_start = true

  log_archive_dest_1 = " LOCATION=D:\Oracle\oradata\ORCL\archive "

  og_archive_format = %%ORACLE_SID%%T%TS%S.ARC

  2.關閉數據庫

  svrmgrl> connect internal

  svrmgrl> shutdown normal

  3.然后啟動實例並安裝該數據庫,但不打開數據庫。

  svrmgrl> startup mount

  4.接着,發布下列更改數據庫的命令。

  Svrmgrl> alter database archivelog;

  5.現在,數據庫已經更改為歸檔方式,您可以打開數據庫。

  svrmgrl> alter database open;

  提示:也可以使用DBA studio工具啟用數據庫的歸檔方式,操作很簡單

 

 

轉載自:https://www.iteye.com/blog/cjjwzs-1143700


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM