用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工具啓用數據庫的歸檔方式,操作很簡單  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章