做者:沈小然 日期:2014-9-23 地點:北京 數據庫
1)首先查看數據庫是否處於歸檔模式,Oracle數據庫默認處於非歸檔模式下 oracle
SQL> archive log list app
Database log mode No Archive Mode spa
Automatic archival Disabled 線程
Archive destination USE_DB_RECOVERY_FILE_DEST 日誌
Oldest online log sequence 175 orm
Current log sequence 177 ci
上面顯示沒有處於歸檔模式,咱們設成歸檔模式 string
2)更改歸檔模式,須要在啓動模式爲mount狀態才能設置 it
關閉數據庫
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
啓動mount狀態
SQL> startup mount
ORACLE instance started.
Total System Global Area 2438529024 bytes
Fixed Size 2230792 bytes
Variable Size 1107297784 bytes
Database Buffers 1308622848 bytes
Redo Buffers 20377600 bytes
Database mounted.
更改數據庫爲歸檔模式
SQL> alter database archivelog;
Database altered.
切換數據庫啓動模式爲open,數據庫能夠正常工做了。
SQL> alter database open;
Database altered.
再次查看是否爲歸檔模式,是否開啓自動歸檔,默認歸檔文件保存位置
SQL> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 181
Next log sequence to archive 183
Current log sequence 183
默認歸檔文件保存位置在/u01/app/oracle/admin/test/pfile/init.ora.7222014134227文件中的
db_recovery_file_dest="/u01/app/oracle/fast_recovery_area"
歸檔模式設置完成,重啓數據庫之後依然是歸檔模式。
首先建立歸檔日誌路徑,最好放到不一樣於oracle安裝位置的單獨分區下。
從Oracle 10g開始能夠生成多份同樣的歸檔日誌,保存在多個位置以防不測。咱們建立兩個。
[root@VM oracle]# mkdir /data/oracle/log1
[root@VM oracle]# mkdir /data/oracle/log2
[root@VM oracle]# chown -R oracle.oinstall /data/oracle
SQL> alter system set log_archive_dest_1='location=/data/oracle/log1/archive_log';
System altered.
提示:若是沒事先建立歸檔日誌目錄,會提示下面的錯誤
SQL> alter system set log_archive_dest_1='location=/data/oracle/log1/archive_log';
alter system set log_archive_dest_1='location=/data/oracle/log1/archive_log'
*
ERROR at line 1:
ORA-02097: parameter cannot be modified because specified value is invalid
ORA-16032: parameter LOG_ARCHIVE_DEST_1 destination string cannot be translated
ORA-07286: sksagdi: cannot obtain device information.
Linux-x86_64 Error: 2: No such file or directory
查看狀態
SQL> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /data/oracle/log1/archive_log
Oldest online log sequence 181
Next log sequence to archive 183
Current log sequence 183
增長第二個歸檔日誌保存位置
SQL> alter system set log_archive_dest_2='location=/data/oracle/log2/archive_log';
System altered.
查看狀態
SQL> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /data/oracle/log2/archive_log
Oldest online log sequence 181
Next log sequence to archive 183
Current log sequence 183
提示:只能看到最新的歸檔目錄。
1)查看生成的默認歸檔日誌文件名
SQL> select name from v$archived_log;
NAME
--------------------------------------------------------------------------------
/data/oracle/log1/archive_log/1_183_856273328.dbf
/data/oracle/log2/archive_log/1_183_856273328.dbf
/data/oracle/log1/archive_log/1_184_856273328.dbf
/data/oracle/log2/archive_log/1_184_856273328.dbf
/data/oracle/log1/archive_log/1_185_856273328.dbf
/data/oracle/log2/archive_log/1_185_856273328.dbf
默認的歸檔日誌文件名如上所示,都是二進制文件。
2)修改歸檔日誌文件名格式
SQL> alter system set log_archive_format="archive_%t_%s_%r.log" scope=spfile;
System altered.
注意:這裏文件後綴雖然改爲了.log但歸檔日誌文件依然是二進制文件,沒法使用vi查看。
%t:重作線程編號
%s:日誌序列號
%r:RESETLOGS的ID值
從10g開始,配置歸檔日誌文件格式時,必須帶有%s,%t和%r匹配符。
3)手工的方式讓Oracle 直接使用下一個日誌組,而無論當前使用的日誌組是否寫滿,這樣方便咱們查看新的歸檔日誌格式是否設置生效。
SQL> alter system switch logfile;
System altered.
SQL> select name from v$archived_log;
NAME
--------------------------------------------------------------------------------
/data/oracle/log1/archive_log/1_183_856273328.dbf
/data/oracle/log2/archive_log/1_183_856273328.dbf
/data/oracle/log1/archive_log/1_184_856273328.dbf
/data/oracle/log2/archive_log/1_184_856273328.dbf
/data/oracle/log1/archive_log/1_185_856273328.dbf
/data/oracle/log2/archive_log/1_185_856273328.dbf
/data/oracle/log1/archive_log/archive_1_186_856273328.log
/data/oracle/log2/archive_log/archive_1_186_856273328.log
8 rows selected.
咱們看到新生成了歸檔日誌,設置的格式也生效了。