パーティション・データの移行の例

この例では、パーティション・データを手動で移行させる方法を示しています。

注目で始まる Optim™ High Performance UnloadV5.1 この例で説明するプロセス全体が自動的に完了します。

表 TB_EMPLOYEE は表スペース TS_DATA1 に保管されます。TS_DATA1 は、データベース DB_PROD にある 4 つのデータベース・パーティション (10、20、30、40) にあります。 データベース DB_TARGET の 2 つのデータベースパーティションにあるテーブルスペース TS_DATA2 のテーブル TB_EMPLOYEE を TB_EMPLOYEE_NEW に移行するには、 Optim High Performance Unload 新しいテーブルの行の分散を計算するために使用できます。

データベース DB_PROD からのデータを再パーティション化するには、以下のコマンドを使用できます。 コメントの前にはダッシュ (- -) が付いています。
--control file to unload TB_EMPLOYEE table
GLOBAL CONNECT TO DB_PROD ;
UNLOAD TABLESPACE DB2 NO
SELECT * FROM TB_EMPLOYEE ;
TARGET TABLE (TB_EMPLOYEE_NEW IN DB_TARGET) HEADER FIRST
--unload to file employee
OUTFILE("/home/db2inst1/data/employee")
--specify DEL format
FORMAT DEL;
このコマンドを処理すると、結果は以下の 2 つのファイルのようになります。
/home/db2inst1/data/employee.020 (containing the data for the new partition 20)
/home/db2inst1/data/employee.200 (containing the data for the new partition 200)
両方のファイルに、LOAD Db2® コマンドが発行されたときに使用されたデータベース・パーティションのマップが含まれています。以下に例を示します。
LOAD FROM /home/db2inst1/data/employee OF DEL
INSERT INTO TB_EMPLOYEE_NEW
PARTITIONED DB CONFIG MODE LOAD_ONLY ;
Optim High Performance Unload 異なる再パーティショニングキーを持つテーブルにデータを再パーティショニング(この例では4つのデータベースパーティションを2つに)すると、新しいキーに基づいて行の分布が再計算されます。 例えば、以下のような表があります。
TB_EMPLOYEE_NEW
(COL1 CHAR(6), COL2 VARCHAR(12), COL3 SMALLINT, COL4 DATE)
これに COL3 のキーがあり、既存の表とターゲット表が同じデータベースにあるとすると、行配分の再計算を実行できる制御ファイルは次のようになります。
GLOBAL CONNECT TO DB_PROD ;
UNLOAD TABLESPACE DB2 NO
SELECT * FROM TB_EMPLOYEE ;
TARGET KEYS ((COL3) PARTS(20,200)) HEADER FIRST
OUTFILE("/home/db2inst1/data/employee")
FORMAT DEL;
この結果は、表 TB_EMPLOYEE_NEW にロードできる 2 つのファイルです。 既存の表を別のシステムに移動させるのではなく、再パーティション化したい場合には、TARGET TABLE ではなく、この書式を使用します。 PARTS パラメーターを使用して、表が使用するデータベース・パーティション (つまり、この表をドロップおよび再作成する前に、表スペースを作成する予定のノード・グループ内にある 2 つのデータベース・パーティション番号) を指定します。