Oracle 歸檔模式和非歸檔模式

歸檔模式和非歸檔模式
在DBA部署數據庫之初,必需要作出的最重要決定之一就是選擇歸檔模式(ARCHIVELOG)或者非 歸檔模式(NOARCHIVELOG )下運行數據庫。咱們知道,Oracle 數據庫須要至少兩組聯機日誌,每當一組 聯機日誌寫滿後會發生日誌切換,繼續向下一組聯機日誌寫入。若是是歸檔模式,日誌切換會觸發歸檔進程 (ARCn)進行歸檔,生成歸檔日誌。Oracle 保證歸檔完成前,聯機日誌不會被覆蓋,若是是非歸檔模式, 則不會觸發歸檔動做。linux

歸檔模式的優缺點
歸檔日誌文件中保留了數據庫的改動信息。數據庫

在這種模式下能夠得到以下好處:安全

能夠進行徹底、不徹底恢復:因爲對數據庫所作的所有改動都記錄在日誌文件中,若是發生硬盤故 障等致使數據文件丟失的話,則能夠利用物理備份和歸檔日誌徹底恢復數據庫,不會丟失任何數據。
能夠進行聯機熱備:所謂聯機熱備,就是在數據庫運行狀態下,對數據庫進行備份。備份時用戶對 數據庫的使用不受任何影響。
能夠實施 Data Guard:能夠部署 1 個或多個備用數據庫,從而最大限度地提供災難保護手段。
能夠實施 Stream:利用 Stream 技術,能夠實現最簡單的單向複製到複雜的雙向複製、多向複製, 提供更加靈活的數據冗餘方案。
表空間能夠脫機:能夠備份部分數據庫,好比重要的表空間。
可以增量備份:只需作一次徹底備份,之後只備份發生改變的數據,能夠提升備份速度。
更多的優化選項:隨着 Oracle 版本升級,在聯機熱備方面不斷有新的優化策略出現。
使用歸檔模式的缺點在於:oracle

須要更多的磁盤空間保存歸檔日誌;
DBA 會有更多的管理工做,包括維護歸檔空間、備份歸檔日誌。
非歸檔模式的優缺點
非歸檔模式不生成歸檔日誌,從數據安全角度來講,這種模式缺點是主要的,而優勢能夠忽略不計。性能

非歸檔模式的缺點包括:優化

只能進行脫機備份,也就是所謂的「 冷備份」,和聯機備份的「 熱備份」 相對應,數據庫必須徹底 關閉後備份,在備份過程當中數據庫不可用;
必須備份整個數據庫,不能只備份部分數據庫;
不能增量備份,對於 TB 級數據庫(VLDB) ,這是一個很是大的缺點;
只能部分恢復,若是數據文件丟失須要恢復,DBA 只能恢復最後一次的徹底備份,而以後的全部 數據庫改變所有丟失。
非歸檔模式的優勢包括:spa

DBA 的管理工做減小,由於非歸檔模式不產生歸檔日誌,所以 DBA 不用考慮對歸檔的管理;
性能會有提高。日誌

非歸檔模式轉換成歸檔模式
數據庫建立過程當中須要指定歸檔和非歸檔模式,若是選擇的是非歸檔模式,能夠在數據庫建立完成後 手工改變成歸檔模式,具體操做步驟以下。code

(1 )關閉數據庫:server

shutdown immediate;
(2 )啓動數據庫到 mount 狀態:

startup mount;
(3 )修改數據庫歸檔模式:

alter database archivelog;
(4 )啓動數據庫:

alter database open;
(5 )定義歸檔位置,也就是歸檔日誌保存路徑:

alter syste set log_archive_dest_1="location=d:\oradata\example\archive" scope=both;
(6 )確認配置生效:

archive log list;

alter system set log_archive_dest_1="location=路徑" scope=both;#設置本地歸檔日誌的路徑 alter system set log_archive_dest-1="server=路徑" scope=both;#設置爲遠程歸檔日誌的路徑 archive log list;#使歸檔路徑生效
那若是歸檔日誌空間滿了,如何知足平常須要; 首先咱們會考慮將部分歸檔日誌移走或者刪除,以後有可能會發現空間未釋放。linux中當一個文件被進程使用或者佔用的時候,移走或者刪除文件,空間將不會釋放,解決辦法:關閉進程便可。 ps -fe|grep filename; kill 最前面數字1 最前面數字2; oracle歸檔日誌的默認路徑是$oracle_base/fast_recovery_area;默認大小爲4g; archive log list;#查看歸檔日誌相關信息 方法1:增長歸檔空間 默認狀況下,歸檔日誌保存空間是在閃回區, show parameter db_recovery;#查看閃回區空間大小和佔用大小 alter system set db_recovery_file_dest_size=數值;#增大默認閃回區空間大小 方法2:修改歸檔日誌路徑爲不受限制的路徑 alter system set "location=路徑";#必須確保路徑存在 shutdown immediate; alter database open;#重啓數據庫 archive log list;#檢查歸檔日誌路徑是否設置成功
----歸檔模式切換歸檔模式;
首先要關閉歸檔進程,以sys身份登錄 alter system set log_archive_start=false scope=spfile; #關閉歸檔進程 shutdown immediate;#關閉數據庫 startup mount;#打開mount alter database flashback off;#關閉閃回模式,若是未關閉,或出現ORA-38774的錯誤ora-38774:cannot disable media recovery-flashback database is enabled. alter database noarchivelog;#把數據庫設置爲非歸檔模式 alter database open;#打開數據庫 --一些驗證切換成功的方法,select * from v$log;
相關文章
相關標籤/搜索