log_archive_dest_n 和log_archive_dest和 log_archive_duplex_dest

轉自:http://blog.chinaunix.net/uid-11570547-id-59115.html

log_archive_dest_n 和log_archive_dest和 log_archive_duplex_dest

1、
LOG_ARCHIVE_DEST_n這個參數應該是在9i之後引入的一個參數,Oracle之所以引入這個參數我認爲是有以下幾點:

1、爲了多引入一些歸檔日誌的存放位置。其中n爲1-10(10g)

For Enterprise Edition users, this parameter has been deprecated in favor of the LOG_ARCHIVE_DEST_n parameters. 
If Oracle Enterprise Edition is not installed or it is installed, 
but you have not specified any LOG_ARCHIVE_DEST_n parameters, this parameter is valid.

2、
從上面可以看到log_archive_dest和 log_archive_duplex_dest是被LOG_ARCHIVE_DEST_n參數替代的。兩者有區別:

其中log_archive_dest和 log_archive_duplex_dest只能指定本地的主機位置,而LOG_ARCHIVE_DEST_n參數可以是本地也可一是遠端。

所以這裏只是指定歸檔日誌存放位置的參數而已,不是兩種備份方法。

你上面遇見的問題是:
因爲這兩個參數是互斥的,Oracle之所以保留log_archive_dest和 log_archive_duplex_dest是爲了保證向後的兼容。
而你是將LOG_ARCHIVE_DEST_n 參數設置爲一個NULL,這個也是Oracle不允許的
見下面的官方文檔:

LOG_ARCHIVE_DEST is applicable only if you are running the database in ARCHIVELOG mode or are recovering a database from archived redo logs. LOG_ARCHIVE_DEST is incompatible with the LOG_ARCHIVE_DEST_n parameters, and must be defined as the null string ("") or (' ') when any LOG_ARCHIVE_DEST_n parameter has a value other than a null string. Use a text string to specify the default location and root of the disk file or tape device when archiving redo log files. (Archiving to tape is not supported on all operating systems.) The value cannot be a raw partition.

其中:
and must be defined as the null string ("") or (' ') when any LOG_ARCHIVE_DEST_n parameter has a value other than a null string.
就是這個意思:


這是以下我做的試驗:
SQL> select * from v$version;

BANNER
--------------------------------------------------------------------------------

Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
PL/SQL Release 11.1.0.6.0 - Production
CORE 11.1.0.6.0 Production
TNS for 32-bit Windows: Version 11.1.0.6.0 - Production
NLSRTL Version 11.1.0.6.0 - Production

SQL> show parameter LOG_ARCHIVE_DEST_1

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_1 string
log_archive_dest_10 string


SQL> show parameter log_archive_dest_1

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_1 string LOCATION=c:appkb
log_archive_dest_10 string

--安裝你的要求設置爲NULL

SQL> alter system set LOG_ARCHIVE_DEST_1='';

系統已更改。


SQL> show parameter log_archive_dest_1

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_1 string
log_archive_dest_10 string


SQL> show parameter log_archive_dest_1

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_1 string
log_archive_dest_10 string
SQL> alter system set LOG_ARCHIVE_DEST='c:app';
alter system set LOG_ARCHIVE_DEST='c:app'
*
第 1 行出現錯誤:
ORA-02097: 無法修改參數, 因爲指定的值無效
ORA-16018: 無法將 LOG_ARCHIVE_DEST 與 LOG_ARCHIVE_DEST_n 或
DB_RECOVERY_FILE_DEST 一起使用

也會出現錯誤;

解決的方式:

SQL> alter system reset log_archive_dest_1 sid='orcl';

系統已更改。
這樣就可以將這個參數清除,重啓就可以修改 了

SQL> alter system reset DB_RECOVERY_FILE_DEST;

系統已更改。

SQL> alter system set log_archive_dest='c:app';
alter system set log_archive_dest='c:app'
*
第 1 行出現錯誤:
ORA-02097: 無法修改參數, 因爲指定的值無效
ORA-16018: 無法將 LOG_ARCHIVE_DEST 與 LOG_ARCHIVE_DEST_n 或
DB_RECOVERY_FILE_DEST 一起使用


SQL> alter system set log_archive_dest='c:app' scope=spfile;

系統已更改。

SQL> create pfile from spfile;

文件已創建。


這時候就可以使用log_archive_dest參數了,不過不建議使用。

SQL> show parameter log_archive_dest

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest string c:app
log_archive_dest_1 string


ps

ORA-16018: cannot use string with LOG_ARCHIVE_DEST_n or DB_RECOVERY_FILE_DEST 
Cause: One of the following events caused an incompatibility: 1) Parameter LOG_ARCHIVE_DEST or LOG_ARCHIVE_DUPLEX_DEST was in use when a LOG_ARCHIVE_DEST_n (n = 1...10) parameter was encountered while fetching initialization parameters. 2) An ALTER SYSTEM ARCHIVE LOG START TO command was in effect when a LOG_ARCHIVE_DEST_n parameter was encountered while fetching initialization parameters. 3) A LOG_ARCHIVE_DEST_n parameter was in use when an ALTER SYSTEM command was used to define a value for either the LOG_ARCHIVE_DEST or LOG_ARCHIVE_DUPLEX_DEST parameter. 4) Parameter DB_RECOVERY_FILE_DEST was in use when an attempt was made to use an ALTER SYSTEM or ALTER SESSION command to define a value for LOG_ARCHIVE_DEST or LOG_ARCHIVE_DUPLEX_DEST.
Action: Eliminate any incompatible parameter definitions.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章