原文 http://blog.itpub.net/25744374/viewspace-732083/
LOG_ARCHIVE_DEST:指定歸檔文件存放的路徑,該路徑只能是本地磁盤,默認爲’’。
LOG_ARCHIVE_DEST_n:默認值爲’’。Oracle最多支持把日誌文件歸檔到10個地方,n從1到10。歸檔地址可以爲本地磁盤,或者網絡設備。
DB_RECOVERY_FILE_DEST:指定閃回恢復區路徑。
三者關係:
1、 如果設置了DB_RECOVERY_FILE_DEST,就不能設置LOG_ARCHIVE_DEST,默認的歸檔日誌存放於DB_RECOVERY_FILE_DEST指定的閃回恢復區中。可以設置LOG_ARCHIVE_DEST_n,如果這樣,那麼歸檔日誌不再存放於DB_RECOVERY_FILE_DEST中,而是存放於LOG_ARCHIVE_DEST_n設置的目錄中。如果想要歸檔日誌繼續存放在DB_RECOVERY_FILE_DEST中,可以通過如下命令:alter system set log_archive_dest_1=’location=USE_DB_RECOVERY_FILE_DEST’;
2、 如果設置了LOG_ARCHIVE_DEST,就不能設置LOG_ARCHIVE_DEST_n和DB_RECOVERY_FILE_DEST。如果設置了LOG_ARCHIVE_DEST_n,就不能設置LOG_ARCHIVE_DEST。也就是說,LOG_ARCHIVE_DEST參數和DB_RECOVERY_FILE_DEST、LOG_ARCHIVE_DEST_n都不共存。而DB_RECOVERY_FILE_DEST和LOG_ARCHIVE_DEST_n可以共存。
3、 LOG_ARCHIVE_DEST只能與LOG_ARCHIVE_DUPLEX_DEST共存。這樣可以設置兩個歸檔路徑。LOG_ARCHIVE_DEST設置一個主歸檔路徑,LOG_ARCHIVE_DUPLEX_DEST設置一個從歸檔路徑。所有歸檔路徑必須是本地的。
4、 如果LOG_ARCHIVE_DEST_n設置的路徑不正確,那麼Oracle會在設置的上一級目錄歸檔。比如設置LOG_ARCHIVE_DEST_1=’location=C:\archive1’,而OS中並沒有archive1這個目錄,那麼Oracle會在C盤歸檔。
--===============================================================
測試:
SYS@ tsid> show parameter db_recovery_file_dest
NAME TYPE VALUE
--------------------- ---------- ------------------------------
db_recovery_file_dest string E:\oracle\product\10.2.0\flash
_recovery_area
SYS@ tsid> alter system set log_archive_dest='e:\archive';
alter system set log_archive_dest='e:\archive'
*
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 or DB_RECOVERY_FILE_DEST
SYS@ tsid> alter system set db_recovery_file_dest='';
System altered.
SYS@ tsid> alter system set log_archive_dest='e:\archive';
System altered.
SYS@ tsid> alter system set log_archive_dest_1='e:\archive1';
alter system set log_archive_dest_1='e:\archive1'
*
ERROR at line 1:
ORA-32017: failure in updating SPFILE
ORA-16179: incremental changes to "log_archive_dest_1" not allowed with SPFILE
SYS@ tsid> alter system set db_recovery_file_dest='E:\oracle\product\10.2.0\flash_recovery_area';
alter system set db_recovery_file_dest='E:\oracle\product\10.2.0\flash_recovery_area'
*
ERROR at line 1:
ORA-02097: parameter cannot be modified because specified value is invalid
ORA-16019: cannot use db_recovery_file_dest with LOG_ARCHIVE_DEST or LOG_ARCHIVE_DUPLEX_DEST
SYS@ tsid> alter system set log_archive_dest='';
System altered.
SYS@ tsid> alter system set db_recovery_file_dest='E:\oracle\product\10.2.0\flash_recovery_area';
System altered.
SYS@ tsid> alter system set log_archive_dest_1='location=e:\archive1';
System altered.
SYS@ tsid> alter system switch logfile;
System altered.
E盤中沒有archive1目錄,直接在E盤下生成了歸檔日誌文件,驗證了上面第4點。
SYS@ tsid> alter system set log_archive_dest_1='';
System altered.