IBM Support

[Db2] Db2が稼動しているかどうかを確認する方法は?(IM-10-0AB)

Question & Answer


Question

Db2 が稼動していることを確認する方法を教えてください。

Answer

Db2 インスタンスが正常に稼動しているか確認するにはいくつかの手法があります。
この文書では、以下に示す 1 から 4 の手法について解説します。
  1. Db2 のプロセス監視により確認
  2. SQL やコマンドを発行して確認
  3. db2gcf コマンド (Db2 インスタンスの制御コマンド) を利用して確認
  4. 障害モニターを利用して確認 (ただし HA 環境では利用不可)
 
  1. Db2 のプロセス監視により確認
    Db2 のプロセスを確認することでダウンしていないことが確認できます。
    詳細な状態は得られませんが負荷をかけずに確認でき、広く採用されています。

    Db2 のプロセスおよびスレッドの一覧は以下のマニュアル・ページを参照してください。
    Db2 プロセス・モデル
    監視すべきプロセス (インスタンスごとにひとつ存在。ただし DFP の場合はデータベース・パーティションごと、pureScale の場合はメンバーごとに存在 )
    • UNIX/Linuxの場合
      db2sysc
    • Windowsの場合
      db2syscs.exe
       
  2. SQL やコマンドを発行して確認
    このケースでは実際に接続できるか、さらに SQL を実行できるか確認を行います。
    例)
    db2 "connect to <データベース名>"
    db2 "values current timestamp"
    以上の SQL を実行してエラーにならないことを確認します。
     
  3. db2gcf コマンド (Db2 インスタンスの制御コマンド) を利用して確認
    Db2 は インスタンス制御のために db2gcf コマンドを提供しています。このコマンドにより Db2 インスタンスが稼動しているかどうかを確認できます。
    Db2 は特定のクラスターソフトウェア用にその制御スクリプトのサンプルを提供していますが、その中で Db2 が稼動しているかどうかを確認する用途で利用されています。

    利用する db2gcf コマンドは以下になります。
    db2gcf -s -i <インスタンス名>
    戻される「インスタンスの状態」は以下の 3 種類です。
    • Available: 指定のインスタンスの指定のパーティションは、 プロセスの対象として使用可能な状態です。
    • Operable: このインスタンスはインストールされていますが、現在使用可能な状態ではありません。
    • Not operable: このインスタンスは使用可能な状態にできません。
    0以外の戻り値は何らかの異常を示しています。

    例)
    $ db2start
    2007-10-04 10:31:55     0   0   SQL1026N  The database manager is already active.
    SQL1026N  The database manager is already active.
    $ db2gcf -s
    
    Instance  : db2inst1
    DB2 State : Available <= Availableの状態
    $ echo $?
    0 <= 戻りコード = 0
    
    $ db2stop force
    2007-10-04 10:32:12     0   0   SQL1064N  DB2STOP processing was successful.
    SQL1064N  DB2STOP processing was successful.
    $ db2gcf -s
    
    Instance  : db2inst1
    DB2 State : Operable <= Operateの状態
    $ echo $?
    1 <= 戻りコード = 1
    
    $ db2gcf -s -a -b -x <= 意味のない引数を意図的に設定
    
    Specify proper command options <= エラーメッセージ
    
    db2gcf -[udkcs] -i <instance> -p <p1,p2,p3,p4...pn> -t <timeout> -L
    
        where :
        -u   Start service
        -d   Stop service
        -k   Kill service
        -s   Return status of service
        -o   Display information about GCF module
        -c   Clean up left over resources
         Only one service option can be specified at a time
    
        -i <instance> : specify instance name or if this option is not included
                        then DB2INSTANCE if set is used.
    
        -p <p1,p2,p3...pn> : commands apply to a list of partitions
         Specify the partition numbers without any space and separated by comma
    
        -t <timeout> : Timeout value in seconds.
         This timeout is used instead of gcf default for the specified service.
    
        -L  :  Specify -L to enable error logging. Instance specific
         logging will go to log file db2diag.log in instance log directory.
         Non instance specific logging will go to system log files.
    
         db2gcf Return Values :
         0 : db2 service(start,stop,kill) success or db2gcf -s status Available
         1 : db2 service(start,stop) failed or db2gcf -s status Not Available
         2 : db2gcf has been called with wrong number of parameters
         3 : gcfmodule failed to execute the requested service
    
    $ echo $?
    2 <= 戻りコード = 2
    TSA (Tivoli System Automation) 用のスクリプトは Db2 に同梱されており、/usr/sbin/rsct/ sapolicies/db2 ディレクトリーにインストールされます。
     
  4. 障害モニターを利用して確認 (ただし HA 環境では利用不可)
    このケースでは障害モニターを利用します。HA 環境では利用できないことに注意してください。
    障害モニターは事前にセットアップする必要があります。詳細は以下のページの b を参照してください。
    [Db2] システム起動時に Db2 インスタンスを自動起動する方法

    db2fm -s は Db2 の状況を確認し、db2fm -S は障害モニター自身の状況を確認します。
    例)
    $ db2fm -s
    Gcf module '/home/tsubo864/sqllib/lib/libdb2gcf.a' state is AVAILABLE
    $ db2fm -S
    Gcf module 'fault monitor' state is AVAILABLE
    $ db2stop force
    2007-08-16 12:33:19     0   0   SQL1064N  DB2STOP processing was successful.
    SQL1064N  DB2STOP processing was successful.
    $ db2fm -s
    Gcf module '/home/tsubo864/sqllib/lib/libdb2gcf.a' is INSTALLED PROPERLY but NOT ALIVE
    4 db2fm -S
    Gcf module 'fault monitor' state is AVAILABLE
運用上の考慮点
  • Linux で ASLR を有効にしていると、db2gcf が誤った結果を返すことがあります。
    V10.1 以降の Db2 は ASLR 環境での使用をサポートしていますが、IT05908 など複数の APAR が報告されています。

関連情報
db2gcf - Db2 インスタンスの制御 コマンド
[Db2] パスポート・アドバンテージによく寄せられる質問

お問合せ先
技術的な内容に関して、パスポート・アドバンテージの契約のもと Db2 テクニカル・サポートへお問い合わせください。
Db2 テクニカル・サポート

[{"Line of Business":{"code":"LOB10","label":"Data and AI"},"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSEPGG","label":"Db2 for Linux, UNIX and Windows"},"ARM Category":[{"code":"a8m500000008PlUAAU","label":"Database Objects-\u003EInstance"}],"Platform":[{"code":"PF002","label":"AIX"},{"code":"PF010","label":"HP-UX"},{"code":"PF016","label":"Linux"},{"code":"PF027","label":"Solaris"},{"code":"PF033","label":"Windows"}],"Version":"10.1.0;10.5.0;11.1.0;11.5.0;9.5.0;9.7.0"}]

Historical Number

E81344CFCEF31C66492577DF00325CD6

Document Information

Modified date:
15 August 2023

UID

jpn1J1002590