IBM Support

[Db2] Db2 が使用する TCP/IP ポート番号

Question & Answer


Question

Db2 サーバーが LISTEN する可能性のある TCP/IP のポート番号を教えてください。

Answer

Db2 は以下のポートを LISTEN する可能性があります。
  1. インスタンス・サービスポート (SVCENAME)
  2. インスタンス・SSL サービスポート (SSL_SVCNAME)
  3. 高速コミュニケーション・マネージャー (FCM) ポート
  4. Db2 高可用性災害時リカバリー (HADR) ポート
  5. RSCT 用ポート (TSAMP によるクラスターを構成する場合)
  6. Pacemaker 用ポート (Pacemaker によるクラスターを構成する場合)
  7. GPFS (Spectrum Scale) 用ポート (pureScale クラスターのみ)
  8. MQ チャネル (Q レプリケーション使用時のみ)
  9. IBM Secure Shell Server For Windows 用ポート (Windows のみ)
  10. Db2 管理サーバー (DAS) サービスポート (V9.7 以降非推奨)
  11. IBM Tivoli Monitoring for Databases: DB2 Agent (ITMA) ポート (V9.7 まで)
  12. Db2 Java Daemon ポート (JDBC Type3 接続使用時のみ。V8 まで)
それぞれのポートの詳細は以下の説明を参照してください。
  1. インスタンス・サービス (SVCENAME) ポート
    データベース・アプリケーションが、データベース・サーバーに接続するときに使用します。
    インスタンス作成時のデフォルトは V11.5.5 以前は 50000、V11.5.6 以降は 25000 ですが、データベース・マネージャー構成パラメーター SVCENAME で変更できます。
    正しく LISTEN されているかどうかは以下の手順で確認できます。
    1. サービス名の確認
      db2 get dbm cfg | findstr "SVCENAME" (Windows)
      db2 get dbm cfg | grep "SVCENAME (UNIX/Linux)
      TCP/IP Service name (SVCENAME) = db2c_DB2
      → SVCENAME は db2c_DB2 に設定されています。
    2. services ファイルからサービス・ポートを確認
      findstr "db2c_DB2" %systemroot%\system32\drivers\etc\services (Windows)
      grep "db2c_DB2" /etc/services (UNIX/Linux)
      db2c_DB2 50000/tcp
      → services ファイルの中を見ると db2c_DB2 は 50000 に設定されています。
    3. netstat で、動作状態を確認
      netstat -ao | findstr "db2c_DB2" (Windows)
      TCP DB2HOST1:db2c_DB2 DB2HOST1:0 LISTENING 1380
      netstat -o | grep "db2c_DB2" (UNIX/Linux)
      tcp4 0 0 *.db2c_DB2 *.* LISTEN
      注:サービス・ポートを正常に LISTEN するには、レジストリ変数 DB2COMM を TCPIP に設定する必要があります。設定例
      db2set DB2COMM=TCPIP
      db2stop force
      db2start
  2. インスタンス・SSL サービスポート (SSL_SVCNAME)
    データベース・アプリケーションが、SSL/TLS でデータベース・サーバーに接続するときに使用します。
    デフォルトはありません。データベース・マネージャー構成パラメーター SSL_SVCENAME で定義できます。
    TCP/IP でも通信する場合、SVCNAME と異なる番号に設定する必要があります。同じ番号に設定すると TCP/IP も SSL も通信できなくなります。
    SSL/TLS による通信の構成方法は以下の Technote を参照してください。
    [Db2] SSL によってクライアント/サーバー間の通信を暗号化する方法
     
  3. 高速コミュニケーション・マネージャー (FCM) ポート
    Database Partitioning Feature (DPF: 複数データベース・パーティション) 使用時のパーティション間通信に使われます。 インスタンス作成時のデフォルトは 60000 から始まる 6 ポート (V10.1 以前は 4 ポート) です。V11.5.6 以降は 20000 から始まる 6 ポートです。なお、インスタンスごとに、同様のポートのセットが必要です。たとえば、2 つめのインスタンスを作成すると 60006 から 60011 を使用します。V11.5.6 以降は 20006 から 20011 を使用します。
    DPF 使用時、1 台のサーバーあたりの最大論理ノード数の分必要となります。このポートも必要に応じて利用者で設定・変更します。なお、V9.5 以降は DPF や区画内並行性 (INTRA_PARALLEL) が有効でなくても FCM が使用されます。
    V11.5.5 以前の最初のインスタンスの例
    DB2_<インスタンス名> 60000/tcp
    DB2_<インスタンス名>_1 60001/tcp
    DB2_<インスタンス名>_2 60002/tcp
    DB2_<インスタンス名>_3 60003/tcp
    DB2_<インスタンス名>_4 60004/tcp
    DB2_<インスタンス名>_END 60005/tcp
    ​​V11.5.6 以降の最初のインスタンスの例
    DB2_<インスタンス名> 20000/tcp
    DB2_<インスタンス名>_1 20001/tcp
    DB2_<インスタンス名>_2 20002/tcp
    DB2_<インスタンス名>_3 20003/tcp
    DB2_<インスタンス名>_4 20004/tcp
    DB2_<インスタンス名>_END 20005/tcp
    注:Db2 11.5 以降、サーバーは ESE インスタンスのみをサポートするため、FCM ポートは必須です。FCM ポートを定義しない場合、db2start は SQL6031N RC=11 で失敗します。
  4. Db2 高可用性災害時リカバリー (HADR) ポート (V8.2 以降)
    高可用性災害時リカバリー (HADR) のプライマリー EDU とスタンバイ EDU の通信に使われます。HADR を使用している場合は、HADR が活動化されているデータベースにつき 1 ポート必要です。データベース構成パラメーター HADR_LOCAL_SVC で定義します。
    現在の設定は以下のコマンドで確認できます。
    db2 get db cfg for <データベース名> | grep HADR_LOCAL_SVC
  5. RSCT 用ポート (TSAMP によるクラスターを構成する場合)
    TSA によるクラスターを構成する場合、すべてのファイアウォールが、クラスター・ノード間の ICMP ping および IP トラフィックに対して、次のポート番号の通過を許可する必要があります。
    cthats および cthags のポート番号は cthactrl コマンドで変更できます。
    • RSCT cthats サブシステム用の 12347/udp
    • RSCT cthags サブシステム用の 12348/udp
    • RSCT rmc サブシステム用の 657/udp
    • RSCT rmc サブシステム用の 657/tcp
       
  6. Pacemaker 用ポート (Db2 11.5 以降で Pacemaker によるクラスターを構成する場合)
    crmd            3121/tcp
    corosync-qnetd  54032/tcp
    corosync        5404 - 5405/udp
    
  7. GPFS (Spectrum Scale) 用ポート
    mmfsd (mmfsd64)  1191/tcp
    mmsdrserv        1191/tcp
    
  8. MQ チャネル (Q レプリケーション使用時のみ)
    Q レプリケーションで定義した各チャネルは DEFINE CHL で指定したポートで LISTEN します。デフォルトは 1414 ですが空いている任意のポートを指定可能です。現在定義されているチャネルの状態とポート番号は以下の MQSC コマンドで表示できます。
    DISPLAY CHSTATUS(*)
  9. IBM Secure Shell Server For Windows 用ポート
    Windows で ssh サーバー機能を提供するために IBM Secure Shell Server For Windows がインストールされます。デフォルトで 22 が使用されますが、sshd_config の設定で変更可能です。
    findstr "Port " "%ALLUSERSPROFILE%\Application Data\IBM\ibmssh\etc\ssh\sshd_config"
    #Port 22
  10. Db2 管理サーバー (DAS) サービスポート
    Db2 管理サーバー (DAS) がコントロール・センターなどと通信するときに使われます。
    523 で固定されており、変更できません。
     
  11. IBM Tivoli Monitoring for Databases: Db2 Agent (ITMA) ポート (V9.5 および V9.7 のみ)
    ITMA が Data Studio Admin Console と通信するときに利用されます。デフォルトで 1920 が使用されます。
     
  12. Db2 Java Daemon ポート (JDBC Type3 接続使用時のみ。V8 のみ。)
    JDBC Type 3 接続を使用する場合、デフォルトで 6789 を使用します。利用者側で変更可能です。
    デフォルトは DB2JD_PORT_NUMBER レジストリ変数で上書きでき、db2jstrt コマンドの引数で変更できます。

運用上の考慮点
  • これらのサービス・ポートは、複数のネットワーク・インターフェースをもつコンピュータでは、どのインターフェースからでも利用可能です。V10.5 FP5 以降、複数のネットワーク・インターフェースをもつコンピュータで、nicbinding.cfg を利用して複数のインスタンスがインスタンス・サービス・ポートを使い分けられます。詳細な設定方法は以下のページを参照してください。
    ポートへの排他的アクセスを DB2 メンバーが獲得できるようにするための NIC の指定
  • インスタンス・サービス・ポートや SSL サービス・ポートがオペレーティング・システムのエフェメラル・ポート範囲に含まれる場合、インスタンスを起動してもサービス・ポートで正しく LISTEN できず、リモート・クライアントから接続できないことがあります。このため、エフェメラル・ポート範囲からインスタンス・サービス・ポートなどを除外する設定を検討してください。
    この事象の詳細は以下の Technote を参照してください。
    [Db2] インスタンス起動時に SQL5043N が発生する場合の対処方法
お問合せ先
技術的な内容に関して、パスポート・アドバンテージの契約のもと Db2 テクニカル・サポートへお問い合わせください。
Db2 テクニカル・サポート

[{"Type":"MASTER","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":"a8m500000008Pl7AAE","label":"Connectivity-\u003ETCP\/IP"}],"ARM Case Number":"","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"All Versions"}]

Document Information

Modified date:
15 August 2023

UID

swg21573861