ノード構成ファイルの作成

データベースをパーティション・データベース環境で操作する場合は、db2nodes.cfg という名前のノード構成ファイルを作成する必要があります。

このタスクについて

データベース・パーティションを有効にする場合は、データベース・マネージャーを開始する前に、インスタンスのホーム・ディレクトリーの sqllib サブディレクトリーに db2nodes.cfg ファイルを配置しておく必要があります。 このファイルには、1 つのインスタンスの中のすべてのデータベース・パーティションの構成情報が含まれ、 そのインスタンスのすべてのデータベース・パーティションによって共有されます。

Windows に関する考慮事項

Windows 上で Db2® Enterprise Server Edition を使用している場合は、インスタンスの作成時にノード構成ファイルが自動的に作成されます。 ノード構成ファイルは手動で作成したり変更したりしないでください。 db2ncrt コマンドを使用して、 データベース・パーティション・サーバーをインスタンスに追加することができます。 db2ndrop コマンドを使用して、 データベース・パーティション・サーバーをインスタンスからドロップすることができます。 db2nchg コマンドを使用すれば、 データベース・パーティション・サーバーの構成を変更することができます。 例えば、1 つのコンピューターから別のコンピューターへのデータベース・パーティション・サーバーの移動、 TCP/IP ホスト名の変更、または別の論理ポートやネットワーク名の選択を行うことができます。

注: インスタンスが削除された場合にデータが失われないようにするために、データベース・マネージャーによって作成されたファイルまたはディレクトリー以外のファイルまたはディレクトリーを sqllib サブディレクトリーの下に作成しないでください。 ただし、以下の 2 つの例外があります。 システムがストアード・プロシージャーをサポートしている場合は、 ストアード・プロシージャー・アプリケーションを sqllib サブディレクトリーの下の function サブディレクトリーに入れます。 もう 1 つの例外は、ユーザー定義関数 (UDF) が作成される場合です。 UDF の実行可能コードは、同じディレクトリーに入れることが許されます。
ファイルには、1 つのインスタンスに属する各データベース・パーティションごとに 1 行が含まれます。 それぞれの行は、以下の形式になっています。
dbpartitionnum hostname [logical-port [netname]]
トークンはブランクで区切られます。 変数は、以下のとおりです。
dbpartitionnum
データベース・パーティションを固有に定義するデータベース・パーティション番号 (0 から 999 まで)。 データベース・パーティション番号は、昇順でなければなりません。 間の番号が抜けていてもかまいません。

いったんデータベース・パーティション番号が割り当てられると、それを変更することはできません。 (変更すると、データを分散する方法を指定する分散マップの中の情報が信用できないものになります。)

データベース・パーティションをドロップした場合、そのデータベース・パーティション番号は、 追加する任意の新しいデータベース・パーティション用に再使用することができます。

データベース・パーティション番号は、 データベース・ディレクトリー内にデータベース・パーティション名を生成するために使用されます。 ノード名は、以下の形式になります。
NODE nnnn 
nnnn はデータベース・パーティション番号で、左側はゼロで埋められます。 このデータベース・パーティション番号は、 CREATE DATABASE コマンドおよび DROP DATABASE コマンドでも使用されます。
hostname
パーティション間通信のための IP アドレスのホスト名。 ホスト名には、完全修飾名を使用します。 /etc/hosts ファイルには、完全修飾名を使用する必要もあります。 db2nodes.cfg ファイルと /etc/hosts ファイルで完全修飾名が使用されていないと、エラー・メッセージ SQL30082N RC=3 を受け取る可能性があります。

(netname が指定された場合は、例外です。 この場合、netname がほとんどの通信で使用され、 hostname は db2startdb2stop、 および db2_all でのみ使用されます。)

論理ポート
このパラメーターの指定は任意であり、データベース・パーティションの論理ポート番号を指定します。 この番号とデータベース・マネージャー・インスタンス名を使用して、etc/services ファイル内の TCP/IP サービス名項目を識別します。

IP アドレスと論理ポートの組み合わせは、既知のアドレスとして使用され、 データベース・パーティション間の通信接続をサポートするために、 すべてのアプリケーションの間で固有のものでなければなりません。

各ホスト名について、1 つの logical-port は、0 かまたはブランク (0 がデフォルト) でなければなりません。 この logical-port に関連付けられるデータベース・パーティションは、 クライアントが接続するホスト上のデフォルトのノードです。 この動作は、 db2profile スクリプトの DB2NODE 環境変数、または sqlesetc() API を使用してオーバーライドできます。

ネット名
このパラメーターの指定は任意であり、それぞれが独自のホスト名を持つ、 複数のアクティブな TCP/IP インターフェースを持ったホストをサポートするために使用されます。

次の例は、あるシステムの場合に考えられるノード構成ファイルを示しています。このシステムでは、SP2EN1 が複数の TCP/IP インターフェースと 2 つの論理パーティションを持ち、Db2 データベース・インターフェースとして SP2SW1 を使用します。 この例は、データベース・パーティション番号が (0 ではなく) 1 から始まり、 dbpartitionnum の順番は間の番号が抜けていることも示しています。

表 1. データベース・パーティション番号の例示表
dbpartitionnum hostname 論理ポート ネット名
1 SP2EN1.mach1.xxx.com 0 SP2SW1
2 SP2EN1.mach1.xxx.com 1 SP2SW1
4 SP2EN2.mach1.xxx.com 0  
5 SP2EN3.mach1.xxx.com    

任意のエディターを使用して、db2nodes.cfg ファイルを更新できます。 (例外: Windows ではエディターを使用しないでください。) ただし、ファイル内の情報の保全性を保護するために注意する必要があります。データベース・パーティショニングでは、 STOP DBM がデータベース・マネージャーを終了した後に START DBM を発行してアンロックすると、ノード構成ファイルがロックされる必要があるためです。 START DBM コマンドは、ファイルがロックされているときに、必要に応じてファイルを更新できます。 例えば、 RESTART オプションまたは ADD DBPARTITIONNUM オプションを指定して START DBM を発行できます。

注: STOP DBM コマンドが正常に実行されず、ノード構成ファイルがアンロックされない場合は、 STOP DBM FORCE を発行してアンロックしてください。