歸檔日誌路徑三個引數DB_RECOVERY_FILE_DEST和LOG_ARCHIVE_DEST和LOG_ARCHIVE_DEST_n

kingsql發表於2015-06-10

LOG_ARCHIVE_DEST:指定歸檔檔案存放的路徑,該路徑只能是本地磁碟,預設為’’

LOG_ARCHIVE_DEST_n:預設值為’’Oracle最多支援把日誌檔案歸檔到10個地方,n110。歸檔地址可以為本地磁碟,或者網路裝置。

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_nDB_RECOVERY_FILE_DEST。如果設定了LOG_ARCHIVE_DEST_n,就不能設定LOG_ARCHIVE_DEST。也就是說,LOG_ARCHIVE_DEST引數和DB_RECOVERY_FILE_DESTLOG_ARCHIVE_DEST_n都不共存。而DB_RECOVERY_FILE_DESTLOG_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.

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28389881/viewspace-1694331/,如需轉載,請註明出處,否則將追究法律責任。

相關文章