CREATE DATABASE PARTITION GROUP ステートメント

CREATE DATABASE PARTITION GROUP ステートメントは、 データベースに新しいデータベース・パーティション・グループを定義し、 データベース・パーティションをデータベース・パーティション・グループに割り当て、 データベース・パーティション・グループ定義をシステム・カタログに記録します。

呼び出し

このステートメントは、アプリケーション・プログラムに組み込むか、あるいは対話式に発行することができます。 これは、DYNAMICRULES の実行動作がパッケージに効力を持つ場合にのみ、動的に準備できる実行可能ステートメントです (SQLSTATE 42509)。

許可

このステートメントの許可 ID が持つ特権には、SYSCTRL または SYSADM 権限が含まれている必要があります。

構文

Read syntax diagramSkip visual syntax diagramCREATE DATABASE PARTITION GROUPdb-partition-group-name ON ALL DBPARTITIONNUMSONDBPARTITIONNUMSDBPARTITIONNUM(,db-partition-number1TOdb-partition-number2)

説明

データベース・パーティション・グループ名
データベース・パーティション・グループの名前を指定します。 これは、1 部構成の名前です。 これは、SQL ID です (通常 ID または区切り ID)。 db-partition-group-name (データベース・パーティション・グループ名) は、すでにカタログに存在しているデータベース・パーティション・グループを指定するものであってはなりません (SQLSTATE 42710)。 db-partition-group-name を文字 SYS または IBM で始めることはできません (SQLSTATE 42939)。
ON ALL DBPARTITIONNUMS
データベース・パーティション・グループの作成時に、データベース (db2nodes.cfg ファイル) に定義されているすべてのデータベース・パーティションにわたって データベース・パーティション・グループを定義することを指定します。

データベース・システムにデータベース・パーティションが追加された場合、 ALTER DATABASE PARTITION GROUP ステートメントを実行して、 この新しいデータベース・パーティションをデータベース・パーティション・グループ (IBMDEFAULTGROUP を含む) に組み込む必要があります。 さらに、REDISTRIBUTE DATABASE PARTITION GROUP コマンドを実行して、そのデータベース・パーティションにデータを移す必要があります。

ON DBPARTITIONNUMS
データベース・パーティション・グループに入れるデータベース・パーティションを指定します。 DBPARTITIONNUM は DBPARTITIONNUMS の同義語です。
db-partition-number1
データベース・パーティション番号を指定します。 (前のバージョンとの互換性を保つため、形式 NODEnnnnnnode-name も指定できます。)
TO db-partition-number2
データベース・パーティション番号の範囲を指定します。 db-partition-number2 の値は、 db-partition-number1 の値以上でなければなりません (SQLSTATE 428A9)。 指定したデータベース・パーティション番号の範囲 (指定した番号を含む) のすべてのデータベース・パーティションが、データベース・パーティション・グループに入れられます。

ルール

  • 番号によって指定するそれぞれのデータベース・パーティションは、db2nodes.cfg ファイルに定義されていなければなりません (SQLSTATE 42729)。
  • ON DBPARTITIONNUMS 文節にリストされるそれぞれの db-partition-number は、1 度だけ出現可能です (SQLSTATE 42728)。
  • 有効な db-partition-number は、0 から 999 (両端を含む) です (SQLSTATE 42729)。
  • データベース・パーティションの追加サーバー要求が保留中または進行中の場合、CREATE DATABASE PARTITION GROUP ステートメントに障害が起こる可能性があります (SQLSTATE 55071)。 また、このステートメントは、新規データベース・パーティション・サーバーがオンラインでインスタンスに追加され、すべてのアプリケーションがこの新規データベース・パーティション・サーバーについて認識しているわけではない場合にも失敗する可能性があります (SQLSTATE 55077)。

  • このステートメントは、データベース・パーティション・グループに対する分散マップを作成します。 それぞれの分散マップごとに、分散マップ ID (PMAP_ID) が生成されます。 この情報はカタログに記録され、SYSCAT.DBPARTITIONGROUPS と SYSCAT.PARTITIONMAPS から検索することができます。 分散マップのそれぞれの項目は、ハッシュされたすべての行が常駐するターゲット・データベース・パーティションを指定します。 単一パーティションのデータベース・パーティション・グループの場合、対応する分散マップの項目は 1 つだけです。 複数パーティションのデータベース・パーティション・グループの場合、 対応する分散マップには 32768 の項目があり、 データベース・パーティション番号がマップ項目にラウンドロビン方式 (デフォルト) で割り当てられます。
  • 代替構文: Db2® の以前のバージョンおよび他のデータベース製品との互換性のために、以下の代替の構文がサポートされています。 これらの代替は非標準であり、使用すべきではありません。
    • DBPARTITIONNUM の代わりに NODE を指定できます。
    • DBPARTITIONNUMS の代わりに NODES を指定できます。
    • DATABASE PARTITION GROUP の代わりに NODEGROUP を指定できます。

以下の例は、0、1、2、5、7、および 8 として定義された 6 つのデータベース・パーティションを持つパーティション・データベースに基づいています。

  • 例 1: 6 つのデータベース・パーティションすべてに対して、 MAXGROUP という名前のデータベース・パーティション・グループを作成すると想定します。 必要なステートメントは以下のようになります。
       CREATE DATABASE PARTITION GROUP MAXGROUP ON ALL DBPARTITIONNUMS
  • 例 2: データベース・パーティション 0、1、2、5、および 8 に対して、MEDGROUP と呼ばれるデータベース・パーティション・グループを作成すると想定します。 必要なステートメントは以下のようになります。
       CREATE DATABASE PARTITION GROUP MEDGROUP
         ON DBPARTITIONNUMS( 0 TO 2, 5, 8)
  • 例 3: データベース・パーティション 7 に対して、単一パーティションのデータベース・パーティション・グループ MINGROUP を作成すると想定します。 必要なステートメントは以下のようになります。
       CREATE DATABASE PARTITION GROUP MINGROUP
         ON DBPARTITIONNUM (7)