- TOP
- 技術情報
- Oracle DB Tips
- [12c R2] INSTANCE_ABORT_DELAY_TIMEパラメータ
KNOWLEDGE
コーソルの技術情報
KNOWLEDGE検索
コーソルでは経験豊かなエンジニアが、Oracle Databaseに関するお役立ち情報を発信しています。
データベースのチューニングや設定にお役立ていただけます。
コーソルの技術情報
KNOWLEDGE検索
コーソルでは経験豊かなエンジニアが、Oracle Databaseに関するお役立ち情報を発信しています。
データベースのチューニングや設定にお役立ていただけます。
Oracle DB Tips
インスタンスの動作継続が難しい致命的な障害の発生を検知したときに、インスタンスを強制終了するまでのタイムラグ(単位:秒)を指定するパラメータです。 デフォルトのINSTANCE_ABORT_DELAY_TIME=0では、致命的障害検知後、即座にインスタンスを強制終了します。 このパラメータはOracle Database 12.2から導入されました。
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
※INSTANCE_ABORT_DELAY_TIMEに大きな値を設定することは、一般に推奨されません。致命的障害が発生しているとことは、そもそも動作を予見し難い状況が発生していると考えることができます。よって、致命的障害が発生してから強制終了が実行されるまでの時間が長くなると、状況によっては致命的障害の影響によってデータが破損するなど、予見し難い望ましくない結果をもたらす可能性が増えるためです。
Oracle Database 12.1以前では、デフォルトのINSTANCE_ABORT_DELAY_TIME=0相当の動作でした。すなわち、致命的障害検知後、即座にインスタンスを強制終了していました。 INSTANCE_ABORT_DELAY_TIMEは、致命的障害が発生した場合でもインスタンス強制終了前に診断情報を取得することを目的とした機能と思われます。
※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]