--------歸檔日誌檔案介紹:
重做日誌檔案歸檔是指將寫滿了的重做日誌檔案儲存到乙個或多個指定的離線位置,這些被儲存的歷史重做日誌檔案的集合被稱為歸檔日誌檔案。
根據是否對重做日誌檔案進行歸檔,資料庫執行模式分為歸檔模式與非歸檔模式。只有當資料庫執行在歸檔模式時,才會將重做日誌檔案歸檔。
歸檔方式可以採用自動歸檔,也可以採用手動歸檔。自動歸檔更加方便、高效,手動歸檔通常在進行特定的資料庫維護操作時使用。
如下圖:歸檔模式下資料庫重做日誌檔案歸檔過程:
由於在歸檔模式下,資料庫中歷史重做日誌檔案全部被儲存,即使用者的所有操作都被記錄下來,因此在資料庫出現故障時,即使是介質故障,利用資料庫
備份、歸檔日誌檔案和聯機重做日誌檔案也可以完全恢復資料庫。而在非歸檔模式下,由於沒有儲存過去的重做日誌檔案,資料庫只能從例項崩潰中恢復,而
無法進行介質恢復。同時,在非歸檔模式下不能執行聯機表空間備份操作,不能使用聯機歸檔模式下建立的表空間備份進行恢復,而只能使用非歸檔模式下建
立的完全備份來對資料庫進行恢復。
------------資料庫歸檔模式的設定:
在資料庫建立後,可以通過 alter database archivelog 或 alter database noarchivelog 語句來修改資料庫的模式。基本步驟如下:
(1)、關閉資料庫
sql> shutdown immediate
(2)、設定歸檔目的地:
將資料庫設定為歸檔模式之前,需要首先設定歸檔目的地,(詳細過程看後面的內容)。
在oracle 11g 資料庫中,預設歸檔目的地由初始化引數 db_recovery_file_dest 指定。
sql> select name , value from v$parameter where name = 'db_recovery_file_dest' ;
(3)、將資料庫啟動到載入狀態
sql> startup mount;
(4)、改變資料庫歸檔模式:
sql> alter database archivelog ;
或者修改資料庫為非歸檔模式:
alter database noarchivelog;
(5)、開啟資料庫
sql>alter database open;
--------------歸檔目標設定:
對重做日誌檔案歸檔之前,應該設定歸檔目標,即歸檔路徑。
設定多個歸檔目標: 通過初始化引數 log_archive_dest_n
設定兩個歸檔目標:通過初始化引數 log_archive_dest 和 log_archive_duplex_dest
歸檔檔案命名方式可以通過初始化引數log_archive_format設定
1.設定初始化引數log_archive_dest 和log_archive_duplex_dest
使用初始化引數 log_archive_dest 和 log_archive_duplex_dest 只能設定兩個本地的歸檔目標,乙個主歸檔目標和乙個輔助歸檔目標。
例如:sql> alter system set log_archive_dest = 'd:\backup\archive' ;
sql>alter system set log_archive_duplex_dest = 'e:\backup\archive' ;
2.設定初始化引數log_archive_dest_n
初始化引數log_archive_dest_n 最多可以設定31 個歸檔目標,即 n 取值範圍為 1~31 。
其中1~10 可以用於指定本地的或遠端的歸檔目標,11~31 只能用於指定遠端的歸檔目標。
設定初始化引數 log_archive_dest_n 時,需要使用關鍵字 location 或 service 指明歸檔目標是本地的還是遠端的。可以使用關鍵字
optional (預設)或 mandatory 指定歸檔是可選歸目標還是強制歸檔目標。
強制歸檔目標的歸檔必須成功進行,否則資料庫將掛起。
例如:sql> alter system set log_archive_dest_1 = 'location = d:\backup\archivemandatory' ;
sql> alter system set log_archive_dest_2= 'location = e:\backup\archivemandatory' ;
sql> alter system set log_archive_dest_5 = ' service = standby1 ' ;
3. 設定歸檔檔案命名方式:
通過設定引數log_archive_format,可以指定歸檔檔案命令方式。例如:
sql> alter system set log_archive_format = 'arch_%t_%s_%r.arc' scope = spfile ;
在引數值中可以包含 %s , %s , %t , %t , %r , %r ,其含義如下:
》%s :代表日誌檔案序列號(log sequences number)
》%s :代表日誌檔案序列號,不足 3 位的以 0 補齊
》%t :代表執行緒號(thread number)
》%t :代表執行緒號,不足 3 位的以 0 補齊
》%r :代表重做日誌的id(redologs id)
》%r : 代表重做日誌的id,不足 3 位的以 0 補齊
----------查詢歸檔資訊:
在oracle 11g中可以執行:
方法一:archive log list
方法二:查詢資料字典檢視 v$database 、 v$archived_log 、v$archived_dest 、 v$archived_processes
等獲取資料庫歸檔資訊。
《案例》
可以通過archive log list命令檢視當前資料庫的歸檔設定情況。。例如:
sql> archive log list;
《案例》
檢視當前所有歸檔重做日誌檔案的序列號,以及每個歸檔重做日誌檔案中 scn 的範圍。
sql> select sequence# , first_change# , next_change# from v$archived_log;
oracle歸檔日誌檔案管理
歸檔日誌 archive log 是非活動的重做日誌備份.通過使用歸檔日誌,可以保留所有重做歷史記錄,當資料庫處於archivelog模式並進行日誌切換式,後台程序arch會將重做日誌的內容儲存到歸檔日誌中.當資料庫出現介質失敗時,使用資料檔案備份,歸檔日誌和重做日誌可以完全恢復資料庫.1,改變日誌...
聯機重做日誌檔案與歸檔日誌檔案
日誌檔案分為重做日誌檔案 redo log file 和歸檔日誌檔案 archive log file 重做日誌redo log file是lgwr程序從oracle例項中的redo log buffer寫入的,是迴圈利用的。就是說乙個redo log file group 寫滿後,才寫下乙個。當所...
設定歸檔目標 檢視歸檔目標 設定歸檔日誌名稱
設定歸檔目標 歸檔目標 存放歸檔日誌檔案的目錄,乙個資料庫可以有多個歸檔目標,在建立資料庫的時候預設設定了歸檔目標.設定歸檔目標語法 alter system set log archive dest n directory directory 磁碟目錄 location 本地系統的目錄 serve...