Oracle Databaseでバグや障害対応のために、サポートからイベントの設定を依頼されることがあります。同時に確認方法などについての説明がないことが多いため、確認方法について記載します。
SQL*Plusに入った後に、oradebugコマンドによる操作を行います。oradebugにて行う操作についてはサポートに確認し、自己責任のもと実施するようにお願いいたします。
イベント(event)の設定
Oracle Databaseにイベントを設定する場合、初期化パラメータへの設定と、alter system文による設定の2つの方法があります。主な違いとしては以下となります。
- alter systemによる設定: オンラインによる変更、再起動により初期化される。オンラインで変更可能かつ再起動が出来ない場合に利用。
- 初期化パラメータによる設定: 設定反映に再起動が必要。永続設定が必要な場合に利用。
oracle$ sqlplus / as sysdba
SQL> -- alter system文ですが、実行したインスタンスのみ反映されるため、RACの場合は全ノードで実施してください。
SQL> -- サポートに案内された場合のみ実施してください。
SQL> alter system set events '<イベント名>';
SQL> -- 永続化用に初期化パラメータ(spfileの場合)に設定します。eventとeventsで構文が異なっている点に注意してください。
SQL> alter system set event = '<イベント名>' scope=spfile;
イベント(event)の確認
現在設定されているイベントを確認しようとしても、静的ビュー(DBA_**等)や動的ビュー(GV$**等)に項目が存在しないため、確認にはoradebugコマンドを利用する必要があります。
oracle$ sqlplus / as sysdba
SQL> -- 以下にてコマンドの確認が可能です。
SQL> oradebug help
SQL> -- 自身のプロセスへアタッチします。
SQL> oradebug setmypid
SQL> -- 起動中の別プロセスへアタッチする場合は、以下のコマンドを利用します。
SQL> -- oradebug setospid <OSプロセスID>
SQL> -- 該当プロセスのシステムレベルに設定されたイベントを出力します。(アタッチせずに実施するとORA-00074が発生します)
SQL> oradebug eventdump system
SQL> -- 該当プロセスのセッションレベルに設定されたイベントを出力します。(alter sessionなどでイベントを設定していた場合)
SQL> oradebug eventdump session