-
歸檔模式
在歸檔模式下時,當LGWR后台進程的寫操作從一個重做日志組切換到另一個重做日志組之后,歸檔寫后台進程(ARCH/ARCn)就會將原來的重做日志文件的信息復制到歸檔日志文件中。可以把歸檔日志文件堪稱是重做日志文件的克隆;
要使歸檔的操作自動化,首先必須將數據庫設置為歸檔模式,其次要啟動歸檔后台進程(ARCn),還要有足夠的硬盤空間以存儲持續產生的歸檔日志文件;
將數據庫設置為歸檔模式意味:
1)當數據庫崩潰(磁盤或系統文件問題所導致的)之后,所有提交數據都能恢復;
2)可以對數據庫進行聯機備份;
3)當某一非系統表空間脫機時,數據庫的其他備份繼續正常工作;
可以進行如下的不完全恢復:
1)恢復到某一特定的時間點;
2)恢復到某一特定SCN號;
3)恢復到某一特定的歸檔文件的結尾; -
數據庫設置為歸檔模式,步驟:
1)以sysdba身份登錄oracle數據庫
2)使用archive log list 命令查看數據庫與歸檔相關的信息;
3)正常關閉數據庫,shutdown immediate;
4)以加載方式啟動數據庫,startup mount;
5)用alter database命令將數據庫設置為歸檔模式,alter database archivelog;
6)打開數據庫,alter database open;
7)驗證當前數據庫與歸檔相關的信息;
8)做數據庫的全備份(備份所有的數據文件和控制文件); -
手動完成從重做日志文件復制到歸檔日志文件中
alter system archive log current; -
把數據庫設置為歸檔模式之后應該立即啟動歸檔后台進程,有兩種方法啟動歸檔日志進程
1)通過命令:alter system archive log start;
2)修改參數文件:將參數文件中的log_archive_start參數修改為true
a)使用命令檢查是否為true。show parameter log_archive_start
b)如果為false,alter system set log_archive_start=true scope=spfile
c)關閉數據庫shutdown immediate
d)啟動數據庫 startup。檢查是否修改 -
歸檔日志進程對外存(硬盤)寫外存(硬盤),LGWR進程是讀內存寫外存(硬盤)。如果數據庫的DML操作非常頻繁,歸檔日志進程的讀寫可能跟不上LGWR。解決方法是啟動多個歸檔后台進程。可以修改參數文件log_archive_max_processes
alter system set log_archive_max_processes=3;
show parameter log_archive_max_processes; -
可以通過修改參數文件中的log_archive_dest_n參數的方法來控制歸檔日志文件寫到的物理硬盤和目錄。
1)查看 show parameter log_archive_dest_
2)更改 alter system set log_archive_dest_1="LOCATION=f:\disk5\offlinelog\mandatory"
location表示歸檔日志文件將放在本地磁盤上;mandatory表示該目錄下的歸檔日志文件時強制性的,即在該目錄下的歸檔日志文件在沒有寫成功之前,所對應的重做日志文件不能重用;
alter system set log_archive_dest_1="LOCATION=f:\disk5\offlinelog\optional" optional表示該目錄下的歸檔日志文件時可選的,即在該目錄下的歸檔日志文件沒有寫成功,所對應的重做日志文件也可以重用。默認是optional;
3)檢查是否設置成功 show parameter log_archive_dest_1
4)獲得歸檔日志信息 select destination,binding,target,status from v\(archive_dest; 5)重做日志切換命令 alter system switch logfile,切換完畢后就會產生歸檔日志文件; 6)查看歸檔日志文件 select name from v\)archived_log; -
設置log_archive_min_succeed_dest保證成功的歸檔日志文件組數(最低要求)
1)查看 show parameter log_archive_min_succeed_dest,如果當前值為1,表示oracle系統只能保證寫到一個本地物理路徑下的歸檔日志文件是好的;
2)設置 alter system set log_archive_min_succeed_dest=2,表示oracle系統只能保證寫到兩個本地物理路徑下的歸檔日志文件是好的,其中一個是強制性(mandatory)的而至少一個可選的(optional); -
設置log_archive_dest_state_n修改這個參數可以關閉或開啟歸檔功能
1)查看 select destination,binding,target,status from v$archive_dest;
2)設置 alter system set log_archive_dest_state_1=defer,關閉歸檔日志
3)開啟歸檔日志 alter system set log_archive_dest_state_1=enable;
9.改變成歸檔模式的應用實例
1)查看數據庫當前的模式和與模式相關的其他信息
archive log list;
2)關閉數據庫
shutdown immediate;
3)以加載方式啟動數據庫,並修改運行模式
startup mount;
alter database arvhivelog;
4)打開數據庫
alter database open;
5)查看數據庫的運行模式
archive log list;
注意:對oracle10g之前的版本,將數據庫的運行模式改為歸檔之后,歸檔后台進程並不自動啟動,需要手動啟動
6)做一次數據庫的全備份