ORACLE數據庫有兩種運行方式:一是歸檔方式(ARCHIVELOG),歸檔方式的目的是當數據庫發生故障時最大限度恢復數據庫,能夠保證不丟失任何已提交的數據;二是不歸檔方式(NOARCHIVELOG),只能恢復數據庫到最近的回收點(冷備份或是邏輯備份)。sql
如何改變數據庫的運行方式,通常狀況下爲NOARCHIVELOG方式。當數據庫建立好之後,根據咱們的須要把須要運行在歸檔方式的數據庫改爲ARCHIVELOG方式。數據庫
首先要查看歸檔與不歸檔方式,須要咱們切換用戶到oracle用戶,使用命令:su - oracle;在使用以下兩種方式查看:oracle
**** log_mode的值爲 NOARCHIVELOG 表示數據庫處於非歸檔模式spa
*** log_mode的值爲 ARCHIVELOG 表示數據庫處於歸檔模式日誌
2. archive log list; orm
這種方式須要oracle最高權限(sysdba)blog
(1)、進入Sqlplus控制檯,命令:sqlplus /nolog;flash
(2)、以系統管理員登陸,命令:connect /as sysdba; io
(3)、查詢當前歸檔方式,命令:archive log list;form
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;若是Database log mode 的值爲 Archive Mode,而且Automatic archival 的值爲 Enabled, 表示數據庫已開啓歸檔模式;
(6)、修改日誌文件命名格式
alter system set log_archive_max_processes = 5;
alter system set log_archive_format = "archive_%t_%s_%r.log" scope=spfile;
(7)、更改日誌文件路徑
alter system set log_archive_dest_1='location=/data/archivelog/orcl';當咱們使用archive log list命令顯示時,會看到Archive destination的值更改成 /data/archivelog/orcl,
假若有須要,能夠生成多份同樣的日誌,以防不測,在添加一份日誌保存位置命令:alter system set log_archive_dest_2='location=/bak/orcl/archive_log';
四、將Oracle數據庫設置爲非歸檔模式 1)、關閉數據庫 shutdown immediate 2)、再後面把數據庫啓動到mount的模式 startup mount 3)、關閉flash閃回數據庫模式,若是不關閉的話,在後面關閉歸檔日誌的時候就會出現討厭的ora-38774錯誤。 alter database flashback off 4)、接着把數據庫改成非歸檔模式 alter database noarchivelog; 5)、都修改好了之後,而後打開數據庫 alter database open; 6)、察看一下歸檔日誌的空間大小 select * from v$recovery_file_dest; 接着看一下log日誌的狀態 select * from v$log; 再看一下閃回日誌使用情況 select * from v$flash_recovery_area_usage;