はじめに
Db2はネットワーク通信を前提としたデータベースであり、複数のTCP/IPポートを用途ごとに使い分けています。
クライアント接続、内部通信、高可用性構成など、それぞれ異なるポートが使用されます。
その中でも基本となるのが以下の2つです。
・SVCENAME
・FCMポート
この2つを理解することで、Db2のポート構成の全体像を把握できます。
本記事では、Db2が使用するTCP/IPポートの仕組みと、主要なポートの役割を整理します。
Db2のTCP/IPポートの全体像
Db2が使用するポートは、役割ごとに分類できます。
・クライアント接続用ポート
・インスタンス内部通信ポート
・高可用性構成用ポート
・クラスタ管理用ポート
・外部製品連携用ポート
このうち、常に関係するのは以下の2つです。
・SVCENAME
・FCMポート
その他のポートは、特定の機能を利用する場合に追加で使用されます。
SVCENAME クライアント接続ポート
SVCENAMEは、クライアントアプリケーションがDb2インスタンスに接続する際に使用するポートです。
外部からの接続はすべてこのポートを通るため、基本となる設定です。
デフォルト値
・Db2 11.5.5以前
50000
・Db2 11.5.6以降
25000
バージョンによってデフォルト値が変更されています。
設定と確認
SVCENAMEはデータベース・マネージャー構成パラメータで定義されます。
db2 get dbm cfg | grep SVCENAME
ポート番号はservicesファイルで確認します。
grep "db2c_" /etc/services
動作条件
SVCENAMEが有効になるには、TCP/IP通信が有効である必要があります。
db2set DB2COMM=TCPIP
db2stop force
db2start
この設定により、Db2は指定されたポートで待ち受け状態になります。
FCMポート インスタンス内部通信
FCMは、Db2内部の通信に使用されるポート群です。
主に以下の用途で使用されます。
・データパーティション間通信
・並列処理
・内部メッセージング
デフォルト値
・Db2 11.5.5以前
60000番台から開始
・Db2 11.5.6以降
20000番台から開始
通常は6つの連続したポートが割り当てられます。
例
DB2_db2inst1 20000/tcp
DB2_db2inst1_1 20001/tcp
DB2_db2inst1_2 20002/tcp
DB2_db2inst1_3 20003/tcp
DB2_db2inst1_4 20004/tcp
DB2_db2inst1_END 20005/tcp
重要な仕様
Db2 11.5以降では、FCMポートの定義は必須です。
DPFを使用していない場合でも、servicesファイルへの定義が必要です。
定義されていない場合、インスタンスの起動に失敗します。
その他の主要ポート
Db2では、機能ごとに追加のポートが使用されます。
代表的なものは以下の通りです。
・SSL接続用ポート
SSL_SVCENAMEで定義
・HADR用ポート
データベースごとに設定
・クラスタ管理用ポート
TSAMPやPacemakerで使用
・外部連携
MQや監視ツールなど
これらはすべて、特定機能を利用する場合にのみ必要となります。
運用上の考え方
Db2のポートは、設定値だけでなく運用設計が重要です。
ポート番号の管理
ポート番号はOSの動的ポート範囲と重複しないように設計します。
重複すると通信に影響が出る可能性があります。
複数インスタンス環境
複数インスタンスを構成する場合、それぞれで異なるポートを使用します。
特にFCMは連続した範囲を使用するため、設計時に整理が必要です。
ネットワーク構成との関係
複数のネットワークインターフェースを持つ環境では、どのインターフェースで通信するかも考慮します。
必要に応じて設定を分離することで、通信経路を制御できます。
まとめ
Db2は用途ごとに複数のTCP/IPポートを使用します。
その中でも基本となるのは以下の2つです。
・SVCENAMEはクライアント接続の入口
・FCMポートは内部通信の基盤
この2つを理解することで、Db2のポート構成の大枠を把握できます。
その他のポートは、機能ごとに追加されるため、必要に応じて確認すれば問題ありません。
詳細な仕様については、以下のIBM公式情報も参照してください。


コメント