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工具啟用數據庫的歸檔方式,操作很簡單。