本文討論涉及的參數有:
log_archive_dest
log_archive_dest_n
log_archive_start
db_recovery_file_dest
Oracle版本:
SQL> select * from v$version;
BANNER
--------------------------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.2.0 - Prod
PL/SQL Release 10.2.0.2.0 - Production
CORE 10.2.0.2.0 Production
TNS for Solaris: Version 10.2.0.2.0 - Production
NLSRTL Version 10.2.0.2.0 – Production
Oracle為10g的企業版
SQL> show parameter spfile
NAME TYPE VALUE
----------------------------------- ---------------------- ------------------------------
spfile string /export/home/oracledb/oracle/p roduct/10.2.0/dbs/spfileorcl.ora
使用的是spfile參數。
SQL> alter system set log_archive_dest_1='location=/export/home/arch';
System altered.
SQL> alter system set log_archive_dest_1=''; #置為空的時候, 沒有location字樣.
System altered.
SQL> alter system set log_archive_dest='/export/home/arch';
alter system set log_archive_dest='/export/home/arch'
*
ERROR at line 1:
ORA-02097: parameter cannot be modified because specified value is invalid ORA-16018: cannot use LOG_ARCHIVE_DEST with LOG_ARCHIVE_DEST_n orDB_RECOVERY_FILE_DEST
報錯,報錯信息是LOG_ARCHIVE_DEST 和LOG_ARCHIVE_DEST_n不能同時使用,但是,現在log_archive_dest_N已經為空了,為何還不能使用log_archive_dest呢,檢查如下設置:
SQL> show parameter LOG_ARCHIVE_DEST
NAME TYPE VALUE
------------------------------------ ---------------------- ------------------------------
log_archive_dest string
log_archive_dest_1 string
log_archive_dest_10 string
log_archive_dest_2 string
log_archive_dest_3 string
log_archive_dest_4 string
log_archive_dest_5 string
log_archive_dest_6 string
log_archive_dest_7 string
log_archive_dest_8 string
log_archive_dest_9 string
NAME TYPE VALUE
------------------------------------ ---------------------- ------------------------------
log_archive_dest_state_1 string enable
log_archive_dest_state_10 string enable
log_archive_dest_state_2 string enable
log_archive_dest_state_3 string enable
log_archive_dest_state_4 string enable
log_archive_dest_state_5 string enable
log_archive_dest_state_6 string enable
log_archive_dest_state_7 string enable
log_archive_dest_state_8 string enable
log_archive_dest_state_9 string enable
SQL>
log_archive_dest和log_archive_dest_1都為空了,但是DB_RECOVERY_FILE_DEST值卻不為空:
SQL> show parameter DB_RECOVERY_FILE_DEST
NAME TYPE VALUE
---------------------------------------------------- ------------------------------
db_recovery_file_dest string /export/home/oracledb/oracle/flash_recovery_area
db_recovery_file_dest_size big integer 2G
原因就在這裡,置空DB_RECOVERY_FILE_DEST
SQL> alter system set db_recovery_file_dest='';
System altered.
SQL> show parameter DB_RECOVERY_FILE_DEST
NAME TYPE VALUE
------------------------------------ ---------------------- ------------------------------
db_recovery_file_dest string
db_recovery_file_dest_size big integer 2G
重新執行log_archive_dest設置
SQL> alter system set log_archive_dest='/export/home/arch';
System altered.
可以順利執行了
另外一個參數,log_archive_start在oracle10g已經廢棄,但是oracle並沒有拋棄這個參數,還是可以查到:
SQL> show parameter log_archive_start
NAME TYPE VALUE
------------------------------------ ---------------------- ------------------------------
log_archive_start boolean FALSE
SQL>
默認值為FALSE,並且不能修改, oracle10g在啟用歸檔後自動歸檔。不用設置自動歸檔,因此無需理會此值。
總結:
log_archive_dest和log_archive_des_n不能同時使用,10g默認歸檔路徑log_archive_dest_10 為 flash _recovery_area,即DB_RECOVERY_FILE_DEST,因此log_archive_dest也不能於DB_RECOVERY_FILE_DEST一起使用。
換句話說:LOG_ARCHIVE_DEST和 LOG_ARCHIVE_DUPLEX_DES是一組
LOG_ARCHIVE_DEST_1。。。10,又是一組,你只能選擇一組歸檔。
從以上,我們可以看到這個兩個參數可以互換的, 也就是說原來的是log_archive_dest,現在可以用log_archive_dest_1.反之亦然.但是不能夠同時使用.
注意以上log_archive_dest 和log_archive_dest_1都置為空的時候, 系統會自動設置歸檔的目的地. -->?/dbs/arch.