oracle運行的時候至少須要兩組聯機日誌,每當一組日誌寫滿後會發生日誌切換,繼續向下一組聯機日誌寫入。數據庫
若是是歸檔模式,則會觸發ARCn進程,把切換後的重作日誌文件複製到歸檔日誌文件。安全
若是是非歸檔模式,重作日誌就會被覆蓋。oracle
將聯機日誌轉換爲歸檔日誌的過程稱之爲歸檔。相應的日誌被稱爲歸檔日誌。優化
歸檔模式的優勢:
一、能夠進行徹底、不徹底恢復:對於數據庫所做的所有改動 都記錄在日誌文件中,若是發生磁盤故障等致使數據文件丟失的話,則能夠利用物理備份和歸檔日誌徹底恢復數據庫,不會丟失任何數據。spa
二、能夠進行聯機熱備,所謂的聯機熱備,就是在數據庫運行的狀態下對數據庫進行備份,其餘用戶不受影響。.net
三、能夠實施Data Guard:能夠部署一個或者多個備用數據庫,從而最大限制的提供災難保護。日誌
四、能夠實施stream:利用stream技術,能夠實現最簡單的單向複製、雙向複製和多向複製,提供更加靈活的數據冗餘方案。orm
五、表空間能夠脫機:能夠備份部分數據庫和重要的表空間。server
六、可以增量備份,只需作一次完整的備份,之後之備份改變的數據,提升備份速度。blog
七、更多的優化選擇。
使用歸檔模式的缺點:
一、須要更多的磁盤空間來保存歸檔日誌
二、須要按期維護歸檔表空間和備份歸檔日誌
非歸檔模式的優勢:
不生成歸檔日誌,從數據安全的角度上看,缺點足以彌蓋全部優勢.
使用非歸檔模式的缺點:
一、只能進行脫機備份,也叫冷備份,就是必須數據庫關閉以後才能備份,備份過程當中數據庫不能使用。
二、必須備份整個數據庫,不能備份部分數據庫
三、不能增量備份,對於TB級別的數據庫(VLDB),將是個很大的缺點。
四、只能部分恢復,若是數據文件丟失,只能恢復最後一次的徹底備份,而以後的全部數據庫改變將所有丟失。
查看當前數據庫是否處於歸檔模式
可以使用以下兩種方式查看
一、select name, log_mode from v$database;
log_mode的值爲 NOARCHIVELOG 表示數據庫處於非歸檔模式
log_mode的值爲 ARCHIVELOG 表示數據庫處於歸檔模式
二、archive log list;
此方法須要 as sysdba
Database log mode 的值爲 No Archive Mode
Automatic archival 的值爲 Disabled
表示當前數據庫處於非歸檔模式
Database log mode 的值爲 Archive Mode
Automatic archival 的值爲 Enabled
表示數據庫已開啓歸檔模式
歸檔模式和非歸檔模式下的相互切換:
一、非歸檔模式轉歸檔模式
(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