スナップショット管理ビューおよび表関数を使用したデータベース・システムのスナップショットのキャプチャー

許可ユーザーは、スナップショット管理ビューまたはスナップショット表関数を使用することにより、 DB2® インスタンスに関するモニター情報のスナップショットをキャプチャーできます。 スナップショット管理ビューは、接続されたデータベースのすべてのデータベース・パーティションにおいてデータにアクセスするための簡単な方法を備えています。 スナップショット表関数は、特定のデータベース・パーティション、グローバル集合データ、またはすべてのデータベース・パーティションのデータに対して、データを要求できるようにします。 スナップショット表関数の中は、すべてのアクティブ・データベースのデータを要求できるものもあります。

始める前に

データベース・スナップショットを使用するには、SYSADM、 SYSCTRL、 SYSMAINT、または SYSMON 権限が必要です。 リモート・インスタンスのスナップショットを取得するには、 まず、そのインスタンスに属しているローカル・データベースに接続する必要があります。

このタスクについて

新しいモニター・データが使用できるようになった場合には将来のリリースで新しいスナップショット表関数が必要になるかもしれませんが、スナップショット管理ビューのセットはそのままで、ビューに新しい列を追加するだけです。そのため管理ビューを使用すると、アプリケーションの保守を長期間に渡って行えるという利点があります。

各スナップショット・ビューは、各データベース・パーティションのモニター対象のオブジェクトごとに 1 つの行があり、各列がモニター・エレメントを表す表を戻します。 各表関数は、指定されたパーティションにおいてモニター対象のオブジェクトごとに 1 つの行を持つ表を戻します。 戻される表の列名は、モニター・エレメント名と相関しています。

例えば、SAMPLE データベースに関する一般アプリケーション情報のスナップショットは、SNAPAPPL 管理ビューを使用して次のようにしてキャプチャーされます。
SELECT * FROM SYSIBMADM.SNAPAPPL
戻り表から個々のモニター・エレメントを選択することもできます。 例えば、次のステートメントの場合は、agent_iddb_name のモニター・エレメントだけが戻されます。
SELECT agent_id, db_name FROM SYSIBMADM.SNAPAPPL

制約事項

スナップショット管理ビューおよび表関数は以下のいずれとも併用できません。
  • モニター・スイッチ・コマンドまたはモニター・スイッチ API
  • モニター・リセット・コマンドまたはモニター・リセット API
この制約事項には、以下のコマンドが含まれます。
  • GET MONITOR SWITCHES
  • UPDATE MONITOR SWITCHES
  • RESET MONITOR
この制約事項がある理由は、 これらのコマンドが ATTACH コマンドを使用するのに対して、スナップショット表関数は CONNECT ステートメントを使用するからです。

手順

  • スナップショット管理ビューを使用してスナップショットをキャプチャーするには、以下のようにします。
    1. データベースに接続します。
      これは、モニターする必要のあるインスタンス内のどのデータベースでもかまいません。 スナップショット管理ビューを使用した SQL 照会は、データベースに接続していなければ発行できません。
    2. キャプチャーする必要のあるスナップショットのタイプを決定します。
      現在接続中のデータベース以外のデータベースのスナップショットをキャプチャーする場合、または単一のデータベース・パーティションやグローバル集合データからデータを取得する場合には、代わりにスナップショット表関数を使用する必要があります。
    3. 該当するスナップショット管理ビューを使用して照会を発行します。
      例えば、次の照会では、 現在接続しているデータベースのロック情報のスナップショットをキャプチャーします。
         SELECT * FROM SYSIBMADM.SNAPLOCK
  • スナップショット表関数を使用してスナップショットをキャプチャーするには、以下のようにします。
    1. データベースに接続します。
      これは、モニターする必要のあるインスタンス内のどのデータベースでもかまいません。 スナップショット表関数を使用した SQL 照会は、データベースに接続していなければ発行できません。
    2. キャプチャーする必要のあるスナップショットのタイプを決定します。
    3. 該当するスナップショット表関数を使用して照会を発行します。
      例えば、次の照会では、 現在接続しているデータベース・パーティションの SAMPLE データベースに関するロック情報のスナップショットをキャプチャーします。
         SELECT * FROM TABLE(SNAP_GET_LOCK('SAMPLE',-1)) AS SNAPLOCK
      SQL 表関数には、以下の 2 つの入力パラメーターがあります。
      データベース名
      VARCHAR(255)。 NULL が入力された場合は、現在接続しているデータベースの名前が使用されます。
      パーティション番号
      SMALLINT。 データベース・パーティション番号のパラメーターには、 モニターする必要のあるデータベース・パーティションの番号に対応する整数 (0 から 999 の間の値) を入力します。 現在接続しているデータベース・パーティションのスナップショットをキャプチャーする場合は、 値 -1 を入力します。 グローバル集合スナップショットをキャプチャーする場合は、値 -2 を入力します。 すべてのデータベース・パーティションでスナップショットをキャプチャーする場合は、このパラメーターに値を指定しないでください。
      注:
      1. ただし、次に挙げるスナップショット表関数の場合は、 現在接続しているデータベースを指定するために NULL を入力すると、 インスタンス内のすべてのデータベースに関するスナップショット情報が戻されます。
        • SNAP_GET_DB
        • SNAP_GET_DB_MEMORY_POOL
        • SNAP_GET_DETAILLOG
        • SNAP_GET_HADR
        • SNAP_GET_STORAGE_PATHS
        • SNAP_GET_APPL
        • SNAP_GET_APPL_INFO
        • SNAP_GET_AGENT
        • SNAP_GET_AGENT_MEMORY_POOL
        • SNAP_GET_STMT
        • SNAP_GET_SUBSECTION
        • SNAP_GET_BP
        • SNAP_GET_BP_PART
      2. データベース名パラメーターは、 データベース・マネージャー・レベルのスナップショット表関数には適用されません。 あるのは、データベース・パーティション番号用のパラメーターだけです。 データベース・パーティション番号パラメーターはオプションです。