CREATE EVENT MONITOR (変更履歴) ステートメント

CREATE EVENT MONITOR (変更履歴) ステートメントは、構成パラメーターやレジストリー変数の変更、および DDL ステートメントやユーティリティーの実行に関するイベントを記録できるイベント・モニターを作成します。

CREATE EVENT MONITOR (変更履歴) ステートメントによって作成されるイベント・モニターは、イベント・モニターの起動時に、初期構成と初期レジストリーの値も記録できます。記録されるイベントの集合は、CREATE EVENT MONITOR ステートメントで指定されたイベント制御に応じて異なります。

呼び出し

このステートメントは、アプリケーション・プログラムに組み込むか、あるいは対話式に発行することができます。これは、DYNAMICRULES の実行動作がパッケージに効力を持つ場合にのみ、動的に準備できる実行可能ステートメントです (SQLSTATE 42509)。

許可

このステートメントの許可 ID が保持する特権には、以下のいずれかの権限が含まれている必要があります。

  • SQLADM 権限
  • DBADM 権限

構文

構文図を読む構文図をスキップするCREATE EVENT MONITORevent-monitor-name FOR CHANGE HISTORY WHERE EVENT IN( ,event-control )WRITE TO TABLEformatted-event-table-info AUTOSTARTMANUALSTART
event-control
構文図を読む構文図をスキップするALLADCBACKUPCFGALLDBCFGDBCFGVALUESDBMCFGDBMCFGVALUESDDLALLDDLDATADDLFEDERATEDDDLMONITORDDLSECURITYDDLSQLDDLSTORAGEDDLWLMDDLXMLLOADMOVETABLEONLINERECOVERYREDISTRIBUTEREGVARREGVARVALUESREORGRESTOREROLLFORWARDRUNSTATSUTILALL
formatted-event-table-info
構文図を読む構文図をスキップする,evm-group(target-table-options)
target-table-options
構文図を読む構文図をスキップする12TABLEtable-nameINtablespace-namePCTDEACTIVATE100PCTDEACTIVATEinteger
注:
  • 1 各条件は一度だけ指定できます (SQLSTATE 42613)。
  • 2 節は、スペースまたはコンマで区切ることができます。

説明

event-monitor-name
イベント・モニターの名前。 これは、1 部構成の名前です。これは、SQL ID です (通常 ID または区切り ID)。event-monitor-name (イベント・モニター名) は、 カタログに存在するイベント・モニターを指定する名前であってはなりません (SQLSTATE 42710)。
FOR
記録するイベント・タイプをこの後に指定します。
CHANGE HISTORY
このイベント・モニターが、構成変更、レジストリー変更、および DDL ステートメントやユーティリティーの実行に関するイベントを記録できることを指定します。また、イベント・モニターの起動時に、初期構成と初期レジストリーの値も記録できます。記録されるイベントの集合は、WHERE EVENT IN 節で指定されるイベント制御に応じて異なります。
WHERE EVENT IN (event-control, ...)
イベント・モニターによってキャプチャーされるイベントの識別に使用するイベント制御を 1 つ以上指定します。
event-control
ALL
すべてのイベント・タイプをキャプチャーします。
ADC
自動ディクショナリー作成 (ADC) ユーティリティーの実行をキャプチャーします。
BACKUP
オンライン・バックアップ・ユーティリティーの実行をキャプチャーします。
CFGALL
すべての構成パラメーターとレジストリー変数のイベント・タイプをキャプチャーします。
DBCFG
データベース構成パラメーターの変更をキャプチャーします。
DBCFGVALUES
イベント・モニターによってデータベース構成パラメーターの更新がキャプチャーされていない場合に、イベント・モニターの起動時にすべてのデータベース構成パラメーターの初期値を記録します。
DBMCFG
データベース・マネージャー構成パラメーターの変更をキャプチャーします。
DBMCFGVALUES
イベント・モニターによってデータベース・マネージャー構成パラメーターの更新がキャプチャーされていない場合に、イベント・モニターの起動時にすべてのデータベース・マネージャー構成パラメーターの初期値を記録します。
DDLALL
すべてのタイプの DDL ステートメントの実行をキャプチャーします。
DDLDATA
索引、シーケンス、表、および一時表の DDL の実行をキャプチャーします。
DDLFEDERATED
ニックネーム、サーバー、タイプ・マッピング、ユーザー・マッピング、およびラッパーの DDL の実行をキャプチャーします。
DDLMONITOR
イベント・モニターと使用法リストの DDL の実行をキャプチャーします。
DDLSECURITY
監査ポリシー、付与、マスク、権限ロール、取り消し、セキュリティー・ラベル、セキュリティー・ラベル・コンポーネント、セキュリティー・ポリシー、およびトラステッド・コンテキストの DDL の実行をキャプチャーします。
DDLSQL
別名、関数、メソッド、モジュール、パッケージ、プロシージャー、スキーマ、シノニム、トランスフォーム、トリガー 、タイプ、変数、およびビューの DDL の実行をキャプチャーします。
DDLSTORAGE
ALTER DATABASE ステートメントと、バッファー・プール、パーティション・グループ、ストレージ・グループ、および表スペースの DDL の実行をキャプチャーします。
DDLWLM
ヒストグラム、サービス・クラス、しきい値、作業アクション・セット、作業クラス・セット、およびワークロードの DDL の実行をキャプチャーします。
DDLXML
XSROBJECT DDL の実行をキャプチャーします。
LOAD
ロード・ユーティリティーの実行をキャプチャーします。
MOVETABLE
表移動ユーティリティーの実行 (ADMIN_MOVE_TABLE ストアード・プロシージャーの呼び出し) をキャプチャーします。
ONLINERECOVERY
操作中のデータベース接続を可能にする非同期逆方向フェーズを使用した、クラッシュ・リカバリー操作の実行をキャプチャーします。 (HADR TAKEOVER 中に実行された暗黙的なクラッシュ・リカバリーも含まれます)。
REDISTRIBUTE
パーティション・グループ再配分ユーティリティーの実行をキャプチャーします。
REGVAR
レジストリー変数の即時変更をキャプチャーします。
REGVARVALUES
イベント・モニターの起動時にレジストリー変数の初期値を記録します。
REORG
REORG ユーティリティーの実行をキャプチャーします。
RESTORE
オンライン・リストア・ユーティリティーの実行をキャプチャーします。
ROLLFORWARD
オンライン・ロールフォワード・ユーティリティーの実行をキャプチャーします。
RUNSTATS
RUNSTATS ユーティリティーの実行をキャプチャーします。
UTILALL
ロード、表移動、オンライン・バックアップ、オンライン・リストア、オンライン・ロールフォワード、再配分、REORG、および RUNSTATS ユーティリティーの実行をキャプチャーします。
WRITE TO
データの出力先をこの後に指定します。
TABLE
イベント・モニターのデータの出力先が一連のデータベース表であることを示します。 イベント・モニターは、データ・ストリームを 1 つ以上の論理データ・グループに分け、 各グループを別個の表に挿入します。 グループに含まれる各モニター・エレメントは、同じ名前の表列にマップされます。 対応する表列を持つエレメントだけが表に挿入されます。
formatted-event-table-info
論理データ・グループのターゲット表を定義します。記録する各グループにこの節を指定します。 ただし、evm-group 節を指定しない場合は、指定した event-control オプションに必要なグループが、CONTROL、CHANGESUMMARY、および EVMONSTART 論理グループと共に作成されます。
evm-group
ターゲット表を定義する対象の論理データ・グループを指定します。 以下の表に示されているように、値はイベント・モニターのタイプに基づいて異なります。
イベント・モニターのタイプ evm-group 値
変更履歴
  • CONTROL
  • CHANGESUMMARY
  • EVMONSTART
  • TXNCOMPLETION
  • DDLSTMTEXEC
  • DBDBMCFG
  • REGVAR
  • UTILSTART
  • UTILSTOP
  • UTILPHASE
  • UTILLOCATION
target-table-options
グループのターゲット表を指定します。
TABLE table-name
ターゲット表の名前を指定します。 ターゲット表は、非パーティション表でなければなりません。名前が非修飾の場合、表スキーマは CURRENT SCHEMA 特殊レジスターの値にデフォルト設定されます。名前が指定されない場合、 非修飾名は evm-group および event-monitor-name から以下のように派生されます。
SUBSTRING(evm-group CONCAT '_'
   CONCAT event-monitor-name, 1, 128)
IN tablespace-name
表を作成する表スペースの名前を指定します。 表スペース名を指定しない場合、CREATE TABLE を使用して表スペース名を指定しないで表が作成される場合と同じプロセスで表スペースが選択されます。
PCTDEACTIVATE integer
イベント・モニターの表が自動ストレージ (非一時) または DMS 表スペースに作成される場合には、 PCTDEACTIVATE パラメーターは、どの程度表スペースが満たされた時点でイベント・モニターが自動的に非活動化されるかを指定します。 パーセンテージを表す値は、0 から 100 の範囲で指定可能です。この 100 は、表スペースがいっぱいになるときにイベント・モニターが非アクティブになることを意味します。PCTDEACTIVATE が指定されていない場合には、デフォルト値は 100 になります。SMS 表スペースの場合、このオプションは無視されます。
重要: ターゲット表スペースの自動サイズ変更が有効になっている場合、PCTDEACTIVATE パラメーターを 100 に設定します。 または、この節全体を省略して、デフォルトの 100 が適用されるようにします。 それ以外の場合、表スペースが自動的にサイズ変更される前に、PCTDEACTIVTATE で指定したしきい値に表スペースが到達すると、イベント・モニターは予期せずに非アクティブになる場合があります。
target-table-info の値が指定されないと、CREATE EVENT MONITOR の処理は以下のように続行されます。
  • 派生した表名が使用されます。
  • デフォルトの表スペースが選択されます。
  • PCTDEACTIVATE パラメーターのデフォルトは 100 になります。
AUTOSTART
イベント・モニターを実行するデータベース・パーティションをアクティブ化した時点で、イベント・モニターも自動的にアクティブ化することを指定します。これがデフォルトの動作です。
MANUALSTART
SET EVENT MONITOR STATE ステートメントを使用してイベント・モニターを手動でアクティブ化しなければならないことを指定します。アクティブ化された MANUALSTART イベント・モニターは、SET EVENT MONITOR STATE ステートメントを使用するか、インスタンスを停止することによって、非活動状態にできます。

  • ターゲット・イベント表の作成: ターゲット表が存在していない場合は、CREATE EVENT MONITOR FOR CHANGE HISTORY ステートメントが実行される際に、ターゲット・イベント表が作成されます。
  • 以前に作成されたイベント表: CREATE EVENT MONITOR FOR CHANGE HISTORY 処理時に、別のイベント・モニター用にイベント表が既に定義されていれば、CREATE EVENT MONITOR FOR CHANGE HISTORY ステートメントは失敗し、アプリケーション・プログラムにエラーが戻されます。イベント表の名前が SYSCAT.EVENTTABLES カタログ・ビューの値と一致する場合には、 そのイベント表は別のイベント・モニターによって使用されるよう定義されています。イベント表が存在し、それが別のイベント・モニターによって使用されるよう定義されていない場合は、表は作成されずに、その他の表のオプション・パラメーターは無視され、処理が続行されます。警告がアプリケーション・プログラムに戻されます。
  • イベント・モニターのドロップ: イベント・モニターをドロップしても、イベント表はドロップされません。関連するイベント表は、イベント・モニターをドロップした後に、手動でドロップする必要があります。
  • 整理: イベント表の整理は、手動で実行する必要があります。
  • パーティション環境での動作: パーティション環境で、いくつかのターゲット・イベント表がパーティションに存在しないものの、その同じパーティションに他のターゲット・イベント表がある場合には、そのパーティションにあるターゲット・イベント表についてのデータだけが記録されます。
  • FLUSH EVENT MONITOR: このイベント・モニターには FLUSH EVENT MONITOR ステートメントは適用されないので、このイベント・モニターに対して発行しても効果はありません。
  • モニター作成後のイベント制御の変更: 変更履歴イベント・モニターの作成後に、CREATE EVENT MONITOR ステートメント内で WHERE EVENT IN 節を使用して指定したイベント制御を変更することはできません。イベント制御を変更するには、イベント・モニターを非アクティブ化してドロップした後、WHERE EVENT IN 節を使用して新しいイベント制御の集合を指定して再作成する必要があります。

  • 例 1: この例では、構成変更と構成の初期値を記録する、CFG_WITH_OFFLINE と呼ばれる変更履歴イベント・モニターを作成します。
    CREATE EVENT MONITOR CFG_WITH_OFFLINE
       FOR CHANGE HISTORY WHERE EVENT IN (CFGALL)
       WRITE TO TABLE
         CHANGESUMMARY (TABLE CHG_SUMMARY_HISTORY),
         DBDBMCFG (TABLE DB_DBM_HISTORY),
         REGVAR (TABLE REGVAR_HISTORY)
       AUTOSTART

    この例では、ターゲット表は明示的に指定されています。このステートメントは、以下の表を作成します。

    CHG_SUMMARY_HISTORY
    DB_DBM_HISTORY
    REGVAR_HISTORY
  • 例 2: この例では、すべてのオンライン・バックアップおよびリストア・ユーティリティーの実行を記述したイベントを収集する、BKP_REST と呼ばれる変更履歴イベント・モニターを作成します。
    CREATE EVENT MONITOR BKP_REST
       FOR CHANGE HISTORY WHERE EVENT IN (BACKUP, RESTORE)
       WRITE TO TABLE

    この例では、ターゲット表は明示的に指定されていません。CREATE EVENT MONITOR ステートメントは、CONTROL、CHANGESUMMARY、および EVMONSTART 論理データ・グループに関する表と一緒に、WHERE EVENT IN 節で指定された制御に基づいて必要なターゲット表のみ作成します。BACKUP 制御と RESTORE 制御を使用すると、オンライン・バックアップおよびリストアに関するユーティリティー・イベントを収集できます。これらの制御には UTILSTART、UTILSTOP、UTILLOCATION、および UTILPHASE 論理データ・グループが必要です。このステートメントは、以下の表を作成します。

    CONTROL_BKP_REST
    CHANGESUMMARY_BKP_REST
    EVMONSTART_BKP_REST
    UTILSTART_BKP_REST
    UTILSTOP_BKP_REST
    UTILLOCATION_BKP_REST
    UTILPHASE_BKP_REST