檢視oracle資料庫是否歸檔和修改歸檔模式
首先檢視資料庫現有模式可使用以下語句
select name,log_mode from v$database;
也可以用下面的語句
archive log list;(該方法需要as sysdba)
對於非歸檔模式的資料庫該為歸檔模式(主要以Oracle 10g為參考)使用以下步驟:
1. SQL> alter system set log_archive_dest_1='location=/oracle/oracle10g/log/archive_log';
該語句含義是確定歸檔日誌的路徑,實際上Oracle 10g可以生成多份一樣的日誌,儲存多個位置,以防不測
例如再新增一個日誌位置可使用以下語句
SQL>alter system set log_archive_dest_2='location=/oracle/oracle10g/log2/archive_log';
2.關閉資料庫
SQL> shutdown immediate
3.啟動資料mount狀態:
SQL> startup mount;
4、修改資料庫為歸檔模式:
SQL> alter database archivelog;
5、開啟資料庫,查詢:
SQL> alter database open;
修改日誌檔案命名格式:
SQL> alter system set log_archive_max_processes = 5;
SQL> alter system set log_archive_format = "archive_%t_%s_%r.log" scope=spfile;
修改完成後可以檢視日誌模式是否修改成功!
特別指出的是在Oracle 9i中還要修改引數alter system set log_archive_start = true才能生效,oracle 10g中已經廢除了該引數,所以不需要設定該引數。
自動歸檔預設是禁用,需要修改parameter log_archive_start=TRUE才能啟用自動歸檔。
SQL> show parameter log_archive_start
NAME TYPE value
------------------------------------ ----------- ------------------------------
log_archive_start boolean FALSE
SQL> archive log list
資料庫日誌模式 存檔模式
自動存檔 禁用
存檔終點 /oracle/oracle9i/u01/product/9201/dbs/arch
最早的概要日誌序列 18
下一個存檔日誌序列 19
當前日誌序列 20
SQL> alter system set log_archive_start=TRUE scope=spfile;
系統已更改。
SQL> startup force
ORACLE 例程已經啟動。
Total System Global Area 320308312 bytes
Fixed Size 730200 bytes
Variable Size 285212672 bytes
Database Buffers 33554432 bytes
Redo Buffers 811008 bytes
資料庫裝載完畢。
資料庫已經開啟。
SQL> archive log list
資料庫日誌模式 存檔模式
自動存檔 啟用
存檔終點 /oracle/oracle9i/u01/product/9201/dbs/arch
最早的概要日誌序列 19
下一個存檔日誌序列 21
當前日誌序列 21
SQL> show parameter log_archive_start
NAME TYPE value
------------------------------------ ----------- ------------------------------
log_archive_start boolean TRUE
SQL>
自動歸檔模式下強制歸檔
SQL> alter system switch logfile;
SQL> select * from v$log;