oracle運行的時候至少需要兩組聯機日志,每當一組日志寫滿后會發生日志切換,繼續向下一組聯機日志寫入。
如果是歸檔模式,則會觸發ARCn進程,把切換后的重做日志文件復制到歸檔日志文件。
如果是非歸檔模式,重做日志就會被覆蓋。
將聯機日志轉換為歸檔日志的過程稱之為歸檔。相應的日志被稱為歸檔日志。
歸檔模式的優點:
1、可以進行完全、不完全恢復:對於數據庫所作的全部改動 都記錄在日志文件中,如果發生磁盤故障等導致數據文件丟失的話,則可以利用物理備份和歸檔日志完全恢復數據庫,不會丟失任何數據。
2、可以進行聯機熱備,所謂的聯機熱備,就是在數據庫運行的狀態下對數據庫進行備份,其他用戶不受影響。
3、可以實施Data Guard:可以部署一個或者多個備用數據庫,從而最大限制的提供災難保護。
4、可以實施stream:利用stream技術,可以實現最簡單的單向復制、雙向復制和多向復制,提供更加靈活的數據冗余方案。
5、表空間可以脫機:可以備份部分數據庫和重要的表空間。
6、能夠增量備份,只需做一次完整的備份,以后之備份改變的數據,提高備份速度。
7、更多的優化選擇。
使用歸檔模式的缺點:
1、需要更多的磁盤空間來保存歸檔日志
2、需要定期維護歸檔表空間和備份歸檔日志
非歸檔模式的優點:
不生成歸檔日志,從數據安全的角度上看,缺點足以彌蓋所有優點.
使用非歸檔模式的缺點:
1、只能進行脫機備份,也叫冷備份,就是必須數據庫關閉之后才能備份,備份過程中數據庫不能使用。
2、必須備份整個數據庫,不能備份部分數據庫
3、不能增量備份,對於TB級別的數據庫(VLDB),將是個很大的缺點。
4、只能部分恢復,如果數據文件丟失,只能恢復最后一次的完全備份,而之后的所有數據庫改變將全部丟失。
查看當前數據庫是否處於歸檔模式
可使用如下兩種方式查看
1、select name, log_mode from v$database;
log_mode的值為 NOARCHIVELOG 表示數據庫處於非歸檔模式
log_mode的值為 ARCHIVELOG 表示數據庫處於歸檔模式
2、archive log list;
此方法需要 as sysdba
Database log mode 的值為 No Archive Mode
Automatic archival 的值為 Disabled
表示當前數據庫處於非歸檔模式
Database log mode 的值為 Archive Mode
Automatic archival 的值為 Enabled
表示數據庫已開啟歸檔模式
歸檔模式和非歸檔模式下的相互切換:
1、非歸檔模式轉歸檔模式
(1)、關閉數據庫
shutdown immediate;
(2)、啟動數據庫到mount狀態(連接控制文件)
startup mount;
(3)、修改數據庫為歸檔模式
alter database archivelog;
(4)、打開數據庫
alter database open;
(5)、查詢數據庫是否已處於歸檔模式
archive log list;
(6)、設置本地歸檔日志的路徑
alter system set log_archive_dest_1="location=路徑" scope=both;
該語句含義是確定歸檔日志的路徑,實際上Oracle 10g以后可以生成多份一樣的日志,保存多個位置,以防不測
例如再添加一個日志位置可使用以下語句
alter system set log_archive_dest_2="location=路徑" scope=both;
設置為遠程歸檔日志的路徑
alter system set log_archive_dest-1="server=路徑" scope=both;
(7)、修改歸檔日志文件命名格式
alter system set log_archive_max_processes = 5;
alter system set log_archive_format = "archive_%t_%s_%r.log" scope=spfile;
需重啟后生效,歸檔的日志文件格式會更改為 archive_%t_%s_%r.log 格式
(8)、查看當前被歸檔的重做日志
select name from v$archived_log;
由於沒有重啟數據庫,所以歸檔日志的文件格式仍然是默認的格式。
(9)、歸檔當前重做日志(不管自動歸檔有沒有打開都歸檔)
alter system archive log current;
強制日志切換(若自動歸檔打開,就歸檔前的重做日志,若自動歸檔沒有打開,就不歸檔當前重做日志)
alter system switch logfile;
不一定就歸檔當前的重做日志文件
主要的區別在於:
alter system switch logfile 對單實例數據庫或RAC中的當前實例執行日志切換;
shutdown immediate;
(2)、啟動數據庫到mount狀態(連接控制文件)
startup mount;
(3)、查看的數據庫的歸檔信息
oracle11g設置歸檔模式和非歸檔模式
https://blog.csdn.net/weixin_36707770/article/details/53885423
oracle歸檔模式和非歸檔模式的理解
https://blog.csdn.net/qq_24726509/article/details/81008457
oracle重做日志文件組v$log
https://blog.csdn.net/xuemeilu/article/details/52576826
end