リリース情報


|10.3 第 10 章 プロセッサーの追加による構成の拡大縮小

|10.3.1 分割したデータベースにノードを追加する際の問題

| |

|デフォルト・ページ・サイズ (4KB) と異なるページ・サイズで、複数の |システム一時表スペースを持つ分割したデータベースにノードを追加する際に、 |『SQL6073N ノードの追加に失敗しました』というエラー・メッセージや SQL コードが |表示される場合があります。 |これはノードが生成される際、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 ステートメントなどを実行する前に実行します。


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]