用Oracle歸檔日誌進行資料庫恢復的方法

2022-06-28 18:00:20 字數 2447 閱讀 3044

部落格分類:

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;」開啟資料庫。(應用該命令前請確認已資料庫已備份,如開啟失敗,日誌將不可用)

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

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;

oracle日誌歸檔

文章出處 感謝作者的分享 oracle 歸檔日誌 oracle可以將聯機日誌檔案儲存到多個不同的位置,將聯機日誌轉換為歸檔日誌的過程稱之為歸檔。相應的日誌被稱為歸檔日誌。一 歸檔日誌 是聯機重做日誌組檔案的乙個副本 包含redo記錄以及乙個唯一的log sequence number 對日誌組中的乙...

Oracle 歸檔日誌

spfile錯誤導致資料庫無法啟動 又一例spfile設定錯誤導致資料庫無法啟動 managing archived redo logs oracle例項和oracle資料庫 oracle體系結構 oracle 使用者 物件許可權 系統許可權 oracle 角色 配置檔案 oracle 聯機重做日誌...

oracle 歸檔日誌

日誌檔案概述 oracle 引入重做日誌的原因是為了進行資料恢復。在資料庫執行過程中,使用者更改的資料會暫時存放在資料庫快取記憶體區,而為了提高寫資料庫的速度,不是一旦有資料變化,就把變化的資料寫到資料檔案中,因為頻繁的讀寫磁碟檔案使得資料庫系統效率低下,所以,要等到資料庫高速緩衝區中的資料達到一定...