|デフォルト・ページ・サイズ (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 操作を正常に完了することができます。
|これらの問題を予防する方法としては、この他に 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 ステートメントなどを実行する前に実行します。