用Oracle歸檔日志進行數(shù)據(jù)庫恢復(fù)的方法
Oracle數(shù)據(jù)庫備份的方法很多,下面就為您介紹用Oracle歸檔日志進行數(shù)據(jù)庫恢復(fù)的方法,希望對您學(xué)習Oracle歸檔日志和數(shù)據(jù)庫備份能有所幫助。
聯(lián)機重演日志沒有丟失應(yīng)使用完成恢復(fù),如聯(lián)機重演日志損壞,而又沒有備份,就只能進行不完全恢復(fù)。
一、完全恢復(fù):
1.使用命令“svrmgrl”調(diào)用行方式服務(wù)器管理;
2.輸入命令“connect internal”,然后輸入命令“startup mount’;
3.輸入命令“recover database;”
4.按下ENTER,接受默認值。
5.然后輸入命令“alter database open;”完成數(shù)據(jù)庫恢復(fù)。
二、不完全恢復(fù)
警告:
應(yīng)用不完成恢復(fù)前,必須將數(shù)據(jù)庫做一次完全冷備份,因為應(yīng)用不完全恢復(fù)后,聯(lián)機重演日志將重置,以前的所有日志不可用。
如果恢復(fù)不成功,數(shù)據(jù)庫就不能使用了。再次強調(diào),做完全冷備份后再應(yīng)用不完全恢復(fù)。
1)基于變化的恢復(fù)(change-based recovery)
要執(zhí)行基于變化的恢復(fù),需要知道丟失日志之前的系統(tǒng)寫入歸檔重演日志的最大的變化號(SCN),然后可以啟動恢復(fù)語句恢復(fù)數(shù)據(jù)庫直到改變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后,使用下述步驟完成恢復(fù)
1.使用命令“svrmgrl”調(diào)用行方式服務(wù)器管理;
2.輸入命令“connect internal”,然后輸入命令“startup mount’;
3.輸入命令“recover database until change 9999;”
4.在回答Oracle第一個歸檔重演日志建議信息時,輸入“auto”,Oracle在找到第387號重演日志之前停止恢復(fù)。
5.用命令“alter database open resetlogs;”打開數(shù)據(jù)庫。(應(yīng)用該命令前請確認數(shù)據(jù)庫已備份,如打開失敗,日志將不可用)
2).基于停止恢復(fù)(cancel-based recovery)
1.使用命令“svrmgrl”調(diào)用行方式服務(wù)器管理;
2.輸入命令“connect internal”,然后輸入命令“startup mount’;
3.輸入命令“recover database until cancel;”,Oracle提示需要的第一個歸檔重演日志文件名.按下ENTER鍵接受缺省文件名,并且—路ENTER直到詢問順序號387的日志。輸入“cancel”,停止恢復(fù)操作。
4.用命令“alter database open resetlogs;”打開數(shù)據(jù)庫。(應(yīng)用該命令前請確認數(shù)據(jù)庫已備份,如打開失敗,日志將不可用)
3).基于時間的恢復(fù)(time-based recovery)
為使用基于時間的恢復(fù),必須知道記錄在V$log_history歸檔重演日志序號387(丟失重演日志)的時間,通過執(zhí)行查詢語句“select time from v$log_history where sequence#=387;”得到。本例得到的時間是:2002-06-23 14:42:04
現(xiàn)在開始實施恢復(fù)。
1.使用命令“svrmgrl”調(diào)用行方式服務(wù)器管理;
2.輸入命令“connect internal”,然后輸入命令“startup mount’;
3.輸入命令“recover database until time '2002/06/23 14:42:04';”,Oracle提示需要的第一個歸檔重演日志文件名,輸入“auto”,Oracle恢復(fù)歸檔重演日志直到序號為387的日志,停止恢復(fù)操作。
4.用命令“alter database open resetlogs;”打開數(shù)據(jù)庫。(應(yīng)用該命令前請確認已數(shù)據(jù)庫已備份,如打開失敗,日志將不可用)
提示: 使用基于時間的恢復(fù),時間的格式是YYYY/MM/DD HH24:MI:SS,并且用單引號括起。
附:如何啟用Oracle的歸檔方式
1.參照以下內(nèi)容編輯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.關(guān)閉數(shù)據(jù)庫
svrmgrl> connect internal
svrmgrl> shutdown normal
3.然后啟動實例并安裝該數(shù)據(jù)庫,但不打開數(shù)據(jù)庫。
svrmgrl> startup mount
4.接著,發(fā)布下列更改數(shù)據(jù)庫的命令。
Svrmgrl> alter database archivelog;
5.現(xiàn)在,數(shù)據(jù)庫已經(jīng)更改為歸檔方式,您可以打開數(shù)據(jù)庫。
svrmgrl> alter database open;
提示:也可以使用DBA studio工具啟用數(shù)據(jù)庫的歸檔方式,操作很簡單。
【編輯推薦】