ポートへの排他的アクセスを Db2 メンバーが獲得できるようにするための NIC の指定
Db2 メンバーがリモート・クライアントやドライバーにサービスを提供するための特定のポートへの排他的アクセスを獲得できるようにする、1 つ以上のネットワーク・インターフェース・カード (NIC) を指定することができます。 特定のNICは、そのIP アドレス、または nicbinding.cfg ファイルのアドレスにマップされるホスト名によって指定できます。
始める前に
NIC に指定したホスト名または IP アドレスから完全修飾ホスト名が派生するため、リモート・クライアントまたはドライバーが指定値を使って正しい NIC を一意的に識別できることを確認してください。 リモートクライアントまたはドライバーは、DNSまたは/etc/hostsファイルを介して完全修飾ホスト名を解決しなければなりません。
nicbinding.cfg ファイルの値は、 Db2 サーバー構成に応じて、指定された IP アドレスまたは完全修飾ホスト名のいずれかとして、メンバーによってリモート・クライアントまたはドライバーに返されます (IP アドレスまたはホスト名のどちらが指定されているかは関係ありません)。 戻り値をメンバーに関する正しい場所にマップすることで、リモート・クライアントまたはドライバーはデータベースにアクセスできます。
このタスクについて
Db2 メンバーは、開始するときに、それが常駐するホスト上の 1 つ以上の NIC において特定の 1 つのポートへの排他的アクセスを獲得しようと試みます。 ある Db2 メンバーがホスト上のすべての NIC において特定のポートへの排他的アクセスを正常に獲得した場合、同じホストにある他のすべての Db2 インスタンスが別のポートを使ってリモート・クライアントまたはドライバーにサービスを提供するように構成する必要があります。
バージョン 10.5 フィックスパック 5 以降、Db2 メンバーが特定のポートへの排他的アクセスを獲得できるようにする 1 つ以上の NIC を指定できるようになりました。こうして同じポート番号をめぐる競合を防止できます。 このフィーチャーをインスタンス内の Db2 メンバーのサブセットに対して有効にすることも、すべてのメンバーに対して有効にすることもできます。
特定の NIC は、その IP アドレス、または nicbinding.cfg ファイル内のそのアドレスにマップされるホスト名によって指定できます。このファイルは、 C:\ProgramData\IBM\DB2\DB2COPY1\DB2\cfg ディレクトリーにある Windows の場合、 ~/sqllib/cfg ディレクトリー (または Db2 pureScale® 環境では ~/sqllib_shared/cfg ディレクトリー) にあります。 複数の NIC を指定するには、それらの NIC の IP アドレスにマップされるマルチホーム・ホスト名を使用します。 マルチホーム・ホスト とは、複数の NIC IP アドレスに DNS を介して 1 つのホスト名がマップされるようなホストです。
指定した NIC 上の指定したポートが既に別の Db2 インスタンスによって所有されている場合、あるいは指定したホスト名または IP アドレスがホスト上の有効な NIC を表していない場合、ペア化は無効と見なされ、Db2 メンバーの開始時に SQL5043N が返されます。
の制約事項
- リモート・クライアントまたはドライバーのトラフィックを保守する目的で使用される Db2 メンバーごとに、その Db2 メンバーが常駐するホスト上で、クライアント/サーバー・トラフィックのために使用できる NIC が少なくとも 1 つ存在することを確認してください。
- 単一メンバーからなる Db2 インスタンスの場合、1 つ以上の NIC を表す IP アドレスまたはホスト名を最大で 1 つ指定できます。 メンバー ID が 0 である場合は、メンバー ID がデフォルトで 0 になるため、メンバー ID なしで IP アドレスまたはホスト名を指定できます。
- 複数メンバーからなる Db2 インスタンスの場合、1 つ以上の NIC を表す IP アドレスまたはホスト名を、メンバーごとに最大で 1 つ指定できます。
プロシージャー
0 9.1.2.1
1 9.1.2.2
2 host1.newyork.mycompany.com
特定のメンバーの項目がファイルに存在しない場合、そのメンバーは、それが常駐するホスト上のすべての NIC にバインドされます。 以下の例では、4 つのメンバーからなる Db2 インスタンス内の 3 つのメンバー (0、1、3) に関するバインディングが構成ファイルで定義されています。0 host1
1 host2.chicago.mycompany.com
3 9.1.2.4
メンバー 2 はファイルで指定されていないため、それが常駐するホスト上のすべての NIC にバインドされます。例
- 仮想 IP (VIP) アドレス
- 仮想 IP (VIP) アドレスを使用したり、ホスト名を VIP にマップしたりすることで、NIC を識別できます。 VIP をホスト上の任意の NIC IP アドレスにマップすることができます。 ネットワーク障害が発生した場合、VIP は、同じホストまたは別のホストにある別の NIC の IP アドレスにマップ可能です。 以下の例では、3 つのペアのいずれか 1 つを使用して、この Db2 インスタンスを NIC にバインドできます。
0 9.2.3.2 -> static IP address of the NIC 0 9.2.3.9 -> virtual IP address (VIP) associated with another NIC on the same system 0 host3 -> network interface host name mapped to the VIP
- パーティション・データベース・インスタンス
- パーティション・データベース・インスタンスのメンバー 0、3、および 6 が host67、host68、および host77 に常駐しています。 3 つのすべてのメンバーは論理ポート番号 0 を持っています。つまり、リモート・クライアントまたはドライバーのトラフィックを処理するために TCP/IP または SSL リスナーを使ってこれらすべてをセットアップできます。
- host67では、 NIC4、 NIC5とNIC6 はメンバー 0 にマップされます。 ホスト名 host67m1 は、これら3つのNIC のIPアドレスにマップされます。
- host68では、 NIC5とNIC6 はメンバー3にマップされます。 ホスト名 host68m1 は、これら2つのNICのIP アドレスにマップされます。
- host77では、NIC6 はメンバー6にマップされます。 ホスト名 host77e3 は、NIC6 (9.2.5.6) の IP アドレスにマップされます。
メンバー 6 に関しては、host77e3 の代わりに静的 IP アドレス 9.2.5.6 を使用できます。0 host67m1 3 host68m1 6 host77e3
- Db2 pureScale インスタンス
- Db2 pureScale インスタンスのメンバー 0、1、および 2 は、 host67、 host68、および host77に存在します。 リモート・クライアントまたはドライバーのトラフィックを処理するよう 3 つのすべてのメンバーをセットアップできます。
- host67では、NIC3 はメンバー 0 にマップされます。 NIC3のIP アドレスは9.2.3.3です。
- host68では、NICはNIC3 とよばれ、メンバー1にマップされます。 ホスト名 host68e2 は、 NIC3 (9.2.4.3) の IP アドレスにマップされます。
- host77では、NIC2はメンバー2にマップされます。 ホスト名 host77e1は、NIC2 (9.2.5.2)のIP アドレスにマップされます。
メンバー 1 に関しては host68e2 の代わりに静的 IP アドレス 9.2.4.3 を、メンバー 2 に関しては host77e1 の代わりに静的 IP アドレス 9.2.5.2 をそれぞれ使用できます。0 9.2.3.3 1 host68e2 2 host77e1
次の作業
db2
"select MEMBER,
substr(NETWORK_INTERFACE_BOUND,1,16)
as NETWORK_INTERFACE_ID
from table(MON_GET_INSTANCE(-2))"
MEMBER NETWORK_INTERFACE_ID
------ --------------------
1 host67e1
0 9.2.3.3
2 record(s) selected.
また、オペレーティング・システム・コマンドを使用して、NIC バインディングとポートの使用をモニターすることもできます。 詳細については、「誰が私のポートを使用していますか?」を参照してください。 (AIX®、 Linux®、Windows の例)。