Gblog

おもにTips

LOG_ARCHIVE_DEST_n の MANDATORY

最近、18c さわってます。

 

LOG_ARCHIVE_DEST_n の書き方がちょっとかわったんですね。

LOG_ARCHIVE_DEST_n = { LOCATION=path_name | SERVICE=service_name } 

 

以前の指定(たとえば log_archive_dest_1='/log/arch' )だとエラーになります。

SQL> startup
ORA-16024: parameter LOG_ARCHIVE_DEST_1 cannot be parsed

 

12.1 から、かな。。。。

 

ある環境をみていたら、こんな設定でした。

log_archive_dest_1='LOCATION=/u01/app/oracle/oradata/db1/arch MANDATORY'

 ・・・ MANDATORY ?

 

ん???

 

ちょっと確認。

SQL> set feed off
SQL> alter system set log_archive_dest_1='LOCATION=/u01/app/oracle/oradata/db1/arch1';
SQL> alter system set log_archive_dest_2='LOCATION=/u01/app/oracle/oradata/db1/arch2 MANDATORY'
SQL> 
SQL> select dest_id,dest_name,status,binding from v$archive_dest
   2 where dest_id in (1,2);

   DEST_ID DEST_NAME            STATUS     BINDING
---------- -------------------- ---------- ----------
         1 LOG_ARCHIVE_DEST_1   VALID      OPTIONAL
         2 LOG_ARCHIVE_DEST_2   VALID      MANDATORY

 

デフォルト OPTIONAL でした。

log_archive_dest_1 だけ OPTIONAL(MANDATORY 指定なし)で設定した場合、REDOログ上書きされんの?と思いましたが、REDOログ再利用のために必要なアーカイブ先の最小数は LOG_ARCHIVE_MIN_SUCCEED_DEST で制御されるので、たとえ OPTIONAL でも、アーカイブされる前に REDOログが上書きされることはないようです。

 

ま、そりゃそうだよね。