SQL 解説書
ALTER NODEGROUP ステートメントは、以下の目的で使用されます。
- ノード・グループに 1 つまたは複数の区分またはノードを追加する
- ノード・グループから 1 つまたは複数の区分を除去する
呼び出し
このステートメントは、アプリケーション・プログラムに組み込むか、
あるいは対話式に発行することができます。
このステートメントは、動的に準備可能な実行可能ステートメントです。
しかし、バインド・オプション DYNAMICRULES BIND を適用する場合、
ステートメントを動的に準備することはできません (SQLSTATE 42509)。
許可
このステートメントの許可 ID には、SYSCTRL 権限または SYSADM 権限がなければなりません。
構文
>>-ALTER NODEGROUP--nodegroup-name------------------------------>
.-,-------------------------------------------------------------------------.
V |
>---------+-ADD--+-NODE--+---| nodes-clause |--+----------------------------+-+--+>
| '-NODES-' +-LIKE NODE----node-number---+ |
| '-WITHOUT TABLESPACES--------' |
'-DROP--+-NODE--+---| nodes-clause |--------------------------------'
'-NODES-'
>--------------------------------------------------------------><
nodes-clause
.-,--------------------------------------.
V |
|---(-------node-number1--+--------------------+--+--)----------|
'-TO--node-number2---'
説明
- nodegroup-name
- ノードグループの名前を指定します。
これは、1 つの部分からなる名前です。
これは、SQL 識別子です (通常識別子または区切り識別子)。
ノード・グループは、カタログで記述されている必要があります。
IBMCATGROUP および IBMTEMPGROUP は指定できません (SQLSTATE 42832)。
- ADD NODE
- ノード・グループに追加する特定の 1 つまたは複数の区分を指定します。
NODES は NODE の同義語です。
指定する区分は、ノード・グループにすでに定義済みであってはなりません (SQLSTATE 42728)。
- DROP NODE
- ノード・グループから除去する特定の 1 つまたは複数の区分を指定します。
NODES は NODE の同義語です。
指定する区分は、ノード・グループにすでに定義されている必要があります (SQLSTATE 42729)。
- nodes-clause
- 追加または除去する 1 つまたは複数の区分を指定します。
- node-number1
- 特定の区分番号を指定します。
- TO node-number2
- 区分番号の範囲を指定します。
node-number2 の値は、
node-number1 の値よりも大きいか等しい値でなければなりません (SQLSTATE 428A9)。
- LIKE NODE node-number
- ノード・グループの既存の表スペースのコンテナーが、
指定した node-number のコンテナーと同じであることを指定します。
指定する区分は、このステートメントの前にノード・グループに存在しており、
同じステートメントの DROP NODE 文節に含まれていない区分である必要があります。
- WITHOUT TABLESPACES
- 新たに追加される区分に、デフォルトの表スペースを作成しないことを指定します。
FOR NODE 文節を用いた ALTER TABLESPACE を使用して、
このノード・グループに対して定義される表スペースで使用するコンテナーを定義する必要があります。
このオプションの指定がない場合、
そのノード・グループに対して表スペースが定義されるたびに、
新たに追加される区分にデフォルトのコンテナーが指定されます。
規則
- 番号によって指定するそれぞれの区分またはノードは、
db2nodes.cfg ファイルに定義されていなければなりません (SQLSTATE 42729)。
このファイルについての情報は、
複数の区分にわたるデータの区分化を参照してください。
- ON NODES 文節にリストされる node-number は、
それぞれ固有な区分に対する番号でなければなりません (SQLSTATE 42728)。
- 有効な区分番号は、0 〜 999 (0 と 999 を含む) です (SQLSTATE 42729)。
- 1 つの区分を ADD と DROP の両方の文節に指定することはできません (SQLSTATE 42728)。
- ノード・グループには少なくとも 1 つの区分が残っている必要があります。
最後の区分をノード・グループから除去することはできません (SQLSTATE 428C0)。
- 区分を追加する際に、
LIKE NODE 文節も WITHOUT TABLESPACES 文節も指定されていない場合、デフォルト解釈により、
ノード・グループの既存の区分の最も小さい区分番号 (ここでは 2 とします) が使用され、
LIKE NODE 2 が指定された場合と同様の処理が行われます。
既存の区分をデフォルト値として使用する場合、
区分ではノード・グループ内のすべての表スペースに対して
コンテナーが定義されている必要があります (SYSCAT.NODEGROUPDEF の列 IN_USE が 'T' でない)。
注
- 区分またはノードがノード・グループに追加されると、
その区分に対するカタログ項目が作成されます (SYSCAT.NODEGROUPDEF を参照)。
以下のいずれかの場合には、区分化マップが直ちに変更され、新しい区分が、
その区分が区分化マップにあることを示す標識 (IN_USE) を伴って組み込まれます。
- ノード・グループに表スペースが定義されていない、または
- ノード・グループに定義されている表スペースに表が定義されておらず、
WITHOUT TABLESPACES 文節が指定されていない
以下のいずれかの場合は、区分化マップは変更されず、標識 (IN_USE) は
その区分が区分化マップに組み込まれていないことを示すように設定されます。
- ノード・グループの表スペースに表が存在する、または
- ノード・グループに表スペースが存在し、WITHOUT TABLESPACES 文節が指定された
区分化マップを変更するには、REDISTRIBUTE NODEGROUP コマンドを使用する必要があります。
このコマンドは、任意のデータを再配布し、区分化マップを変更し、標識を変更します。
WITHOUT TABLESPACES 文節が指定された場合は、
データを再配布する前に表スペース・コンテナーを追加する必要があります。
- 区分がノード・グループから除去されると、
その区分のカタログ項目 (SYSCAT.NODEGROUPDEF を参照) が更新されます。
ノード・グループに定義された表スペースに表が定義されていない場合、
区分化マップが直ちに変更され、除去された区分を除外し、
ノード・グループのその区分に関する項目が除去されます。
表が存在する場合は、区分化マップは変更されず、
標識 (IN_USE) はその区分が除去を待機していることを示すように設定されます。
REDISTRIBUTE NODEGROUP コマンドは、データを再配布し、
ノード・グループからその区分に関する項目を除去する場合に、使用しなければなりません。
例
0、1、2、5、7、および 8 という区分を持つ、6 つの区分のデータベースがあると想定します。
区分番号 3 と 6 の 2 つの区分がシステムに追加されます。
- MAXGROUP という名前のノード・グループに、両方の区分、
すなわちノード 3 と 6 を追加し、
区分 2 と同種の表スペース・コンテナーを持ちたいと想定します。
必要なステートメントは以下のようになります。
ALTER NODEGROUP MAXGROUP
ADD NODES (3,6) LIKE NODE 2
- 区分 1 を除去し、区分 6 をノード・グループ MEDGROUP に追加するとします。
ALTER TABLESPACE を使用して、区分 6 に対して別個に表スペース・コンテナーを定義します。
必要なステートメントは以下のようになります。
ALTER NODEGROUP MEDGROUP
ADD NODE(6) WITHOUT TABLESPACES
DROP NODE(1)
[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]