デフォルト・ページ・サイズ (4KB) と異なるページ・サイズで、複数の システム一時表スペースを持つ分割したデータベースにノードを追加する際に、 以下のようなエラー・メッセージや SQL コードが表示される場合があります: "SQL6073N ノードの追加に失敗しました" これはノードが生成される際、IBMDEFAULTBP バッファー・プールが 4 KB のページ・サイズで 存在するために、発生します。
たとえば、現在の分割したデータベースにノードを追加するための db2start コマンドを使用することができます。
DB2START NODENUM 2 ADDNODE HOSTNAME newhost PORT 2
分割されたデータベースがデフォルトのページ・サイズでシステム一時表スペースを持つ場合 以下のメッセージが返されます:
SQL6075W 「データベース・マネージャーの開始」操作は正常にノードを追加しました。 このノードは、すべてのノードを再び停止および開始するまで活動状態になりません。
ただし、分割されたデータベースがデフォルトのページ・サイズではないシステム一時表スペースを 持つ場合は、以下のメッセージが返されます。
SQL6073N ノードの追加操作に失敗しました。SQLCODE = "<-902>"
同様の例では、db2nodes.cfg ファイルに新しいノードを記述し更新すると ノード追加コマンドが使用できます。 そのファイルを 編集した後、デフォルトのページ・サイズでシステム一時表スペースを 持っている、分割されたデータベースで ADD NODE コマンドを実行すると以下のメッセージが 返されます:
DB20000I ADD NODE コマンドは正常に完了しました。
ただし、分割されたデータベースがデフォルトのページ・サイズではないシステム一時表スペースを 持つ場合は、以下のメッセージが返されます。
SQL6073N ノードの追加操作に失敗しました。SQLCODE = "<-902>"
上で概略を説明した問題を予防する 1 つの方法は以下を実行することです:
DB2SET DB2_HIDDENBP=16
このコマンドは db2start や ADD NODE コマンドを実行する前に実行します。このレジストリー変数は DB2 がデフォルトと異なるページ・サイズを使用している 16 ページ分の プールを隠しバッファーに割り振れるようにします。 これが使用可能になることでノード追加操作が正常に完了します。
これらの問題を予防する別の方法としては、ADD NODE コマンドや db2start コマンドで WITHOUT TABLESPACES 文節を指定する方法があります。コマンド実行後、CREATE BUFFERPOOL ステートメントを使用して、 バッファー・プールを作成し、ALTER TABLESPACE ステートメントを使用して、 バッファー・プールにシステム一時表スペースを作成する必要があります。
デフォルト・ページ・サイズ (4 KB) と異なるページ・サイズで 複数の表スペースを持つ既存のノード・グループにノードを 追加する場合、以下のようなエラー・メッセージが出る場合があります : "SQL0647N バッファー・プール "" は現在活動状態ではありません。" これは、デフォルトでないページ・サイズ・バッファー・プールを、表スペースとして 活動状態になっていない、新規のノード上に作成した場合に発生します。
たとえば、ノード・グループにノードを追加するために ALTER NODEGROUP ステートメントを 使用することができます:
DB2START CONNECT TO mpp1 ALTER NODEGROUP ng1 ADD NODE (2)
デフォルトのページ・サイズの表スペースを持つノード・グループの場合は 以下のようなメッセージが返されます:
SQL1759W 再配布ノード・グループは、追加済みノードへ組み込みまたは 消去済みノードからドロップするノード・グループ "<ng1>" のオブジェクトに対するデータを 変更するのに必要です。
一方、ノード・グループが、デフォルトのページ・サイズでない表スペースを持つ場合 以下のメッセージが返されます:
SQL0647N バッファー・プール "" は現在活動状態ではありません。
この問題を予防する 1 つの方法としては、それぞれのページ・サイズのバッファー・プールを作成し、 その後、ALTER NODEGROUP ステートメントを実行する前にデータベースに再接続する方法があります:
DB2START CONNECT TO mpp1 CREATE BUFFERPOOL bp1 SIZE 1000 PAGESIZE 8192 CONNECT RESET CONNECT TO mpp1 ALTER NODEGROUP ng1 ADD NODE (2)
この問題を防止する 2 つ目の方法は、以下のコマンドを実行する方法です:
DB2SET DB2_HIDDENBP=16
db2start コマンドや CONNECT、 ALTER NODEGROUP ステートメントなどを実行する前に実行します。
ALTER TABLESPACE ステートメントはノードに表スペースを追加するために使用する場合、他の 問題が起こることもあります。 例:
DB2START CONNECT TO mpp1 ALTER NODEGROUP ng1 ADD NODE (2) WITHOUT TABLESPACES ALTER TABLESPACE ts1 ADD ('ts1') ON NODE (2)
この一連のコマンドとステートメントは SQL0647N エラー・メッセージを生成します。 (想定メッセージ SQL1759W ではありません)。
この変更を正しく完了させるには、ALTER NODEGROUP... WITHOUT TABLESPACES ステートメントの後で、データベースに再接続する必要があります。
DB2START CONNECT TO mpp1 ALTER NODEGROUP ng1 ADD NODE (2) WITHOUT TABLESPACES CONNECT RESET CONNECT TO mpp1 ALTER TABLESPACE ts1 ADD ('ts1') ON NODE (2)
この問題を防止する他の方法は、以下のコマンドを実行する方法です:
DB2SET DB2_HIDDENBP=16
db2start コマンドや CONNECT、ALTER NODEGROUP、 ALTER TABLESPACE ステートメントなどを実行する前に実行します。