株式会社コーソル

KNOWLEDGE

コーソルの技術情報

コーソルでは経験豊かなエンジニアが、Oracle Databaseに関するお役立ち情報を発信しています。
データベースのチューニングや設定にお役立ていただけます。

KNOWLEDGE検索人気のキーワード

Oracle DB Tips

[12c R2] INSTANCE_ABORT_DELAY_TIMEパラメータ

01.INSTANCE_ABORT_DELAY_TIMEとはどのようなパラメータか?

インスタンスの動作継続が難しい致命的な障害の発生を検知したときに、インスタンスを強制終了するまでのタイムラグ(単位:秒)を指定するパラメータです。 デフォルトのINSTANCE_ABORT_DELAY_TIME=0では、致命的障害検知後、即座にインスタンスを強制終了します。 このパラメータはOracle Database 12.2から導入されました。

02.実行結果:INSTANCE_ABORT_DELAY_TIMEによるインスタンス強制終了の遅延

INSTANCE_ABORT_DELAY_TIME=60(秒)を設定してから、smonプロセスをkill -9します。 インスタンスがsmonプロセスの異常終了を検知してから、60秒後にインスタンスを強制終了していることがわかります。

SQL> ALTER SYSTEM SET INSTANCE_ABORT_DELAY_TIME=60;
システムが変更されました。
SQL> show parameter INSTANCE_ABORT_DELAY_TIME
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
INSTANCE_ABORT_DELAY_TIME            integer     60
SQL> host
ps -ef |grep smon
[oracle@lc201ora1 ~]$ ps -ef |grep smon
oracle    9142     1  0 17:49 ?        00:00:00 ora_smon_c201cdb
oracle   21622     1  0 22:07 ?        00:00:00 ora_smon_c201ora
oracle   21999 21983  0 22:07 pts/5    00:00:00 grep smon
[oracle@lc201ora1 ~]$ date
Fri Mar 24 22:07:42 JST 2017
[oracle@lc201ora1 ~]$ kill -9 21622
[oracle@lc201ora1 ~]$ tail -f /u01/app/oracle/diag/rdbms/c201ora/c201ora/trace/alert_c201ora.log
2017-03-24T22:07:34.649047+09:00
ALTER SYSTEM SET INSTANCE_ABORT_DELAY_TIME=60 SCOPE=BOTH;
2017-03-24T22:07:50.973283+09:00←★
Instance Critical Process (pid: 22, ospid: 21622, SMON) died unexpectedly
ALERT: DELAYED ABORT HAS BEEN INITIATED
Abort will occur in 1 min 0 sec
Initiated by PMON (ospid: 21536)
Due to error 474
2017-03-24T22:08:51.281683+09:00←★
PMON (ospid: 21536): terminating the instance due to error 474
2017-03-24T22:08:51.307604+09:00
System state dump requested by (instance=1, osid=21536 (PMON)), summary=[abnormal instance termination].
System State dumped to trace file /u01/app/oracle/diag/rdbms/c201ora/c201ora/trace/c201ora_diag_21574_20170324220851.trc
2017-03-24T22:08:52.834229+09:00
Dumping diagnostic data in directory=[cdmp_20170324220851], requested by (instance=1, osid=21536 (PMON)), summary=[abnormal instance termination].
2017-03-24T22:08:54.086616+09:00
Instance terminated by PMON, pid = 21536

03.注意点

※INSTANCE_ABORT_DELAY_TIMEに大きな値を設定することは、一般に推奨されません。致命的障害が発生しているとことは、そもそも動作を予見し難い状況が発生していると考えることができます。よって、致命的障害が発生してから強制終了が実行されるまでの時間が長くなると、状況によっては致命的障害の影響によってデータが破損するなど、予見し難い望ましくない結果をもたらす可能性が増えるためです。

04.従来機能との関連性

Oracle Database 12.1以前では、デフォルトのINSTANCE_ABORT_DELAY_TIME=0相当の動作でした。すなわち、致命的障害検知後、即座にインスタンスを強制終了していました。 INSTANCE_ABORT_DELAY_TIMEは、致命的障害が発生した場合でもインスタンス強制終了前に診断情報を取得することを目的とした機能と思われます。

05.参考情報

※INSTANCE_ABORT_DELAY_TIME – OracleR Databaseリファレンス 12cリリース2 (12.2) E72905-02 [http://docs.oracle.com/cd/E82638_01/REFRN/INSTANCE_ABORT_DELAY_TIME.htm]