db2move ユーティリティーを使用したスキーマ・コピーの例

db2move ユーティリティーを -co COPY アクションとともに使用して、1 つ以上のスキーマをソース・データベースからターゲット・データベースにコピーします。 モデル・スキーマを確立すると、新しいバージョンを作成するためのテンプレートとしてそれを使用できます。

例 1: -c COPY オプションの使用
以下の db2move -co COPY オプションの例では、スキーマ BAR をサンプル・データベースからターゲット・データベースにコピーし、それを FOO という名前に変更します。
    db2move sample COPY -sn BAR -co target_db  target schema_map 
      "((BAR,FOO))" -u userid -p password                      

新規の (ターゲット) スキーマ・オブジェクトは、ソース・スキーマのオブジェクトと同じオブジェクト名を使用して作成されますが、修飾子はターゲット・スキーマのものが使用されます。 表のコピーを作成する際には、ソース表のデータを共にコピーすることも、しないこともできます。 ソース・データベースおよびターゲット・データベースは、別々のシステムに存在できます。

例 2: COPY 操作中に表スペース名のマッピングを指定する
以下の例は、db2move COPY 操作時にソース・システムからの表スペースの代わりに使用される、特定の表スペース名マッピングを指定する方法を示しています。 SYS_ANY キーワードを指定して、ターゲット表スペースを、デフォルトの表スペース選択アルゴリズムを使用して選択することを指示できます。 この場合、db2move ユーティリティーは、ターゲットとして使用可能な任意の表スペースを選択します。
    db2move sample COPY -sn BAR -co target_db  target schema_map      
      "((BAR,FOO))" tablespace_map "(SYS_ANY)" -u userid -p password
SYS_ANY キーワードは、すべての表スペースに使用できます。または、一部の表スペースに固有のマッピングを指定し、残りにはデフォルトの表スペース選択アルゴリズムを指定できます。
    db2move sample COPY -sn BAR -co target_db  target schema_map "   
      ((BAR,FOO))" tablespace_map "((TS1, TS2),(TS3, TS4), SYS_ANY)" 
      -u userid -p password                                         
これは、表スペース TS1 が TS2 にマップされ、TS3 が TS4 にマップされ、残りの表スペースがデフォルトの表スペース選択アルゴリズムを使用することを示しています。
例 3: COPY 操作後のオブジェクト所有者の変更
正常に COPY を実行した後に、ターゲット・スキーマで作成された新しい各オブジェクトの所有者を変更することができます。 ターゲット・オブジェクトのデフォルト所有者は接続ユーザーです。 以下のようなオプションを指定すると、新しい所有者に所有権が移転します。
    db2move sample COPY -sn BAR -co target_db  target schema_map
      "((BAR,FOO))" tablespace_map "(SYS_ANY)" owner jrichards
      -u userid -p password
ターゲット・オブジェクトの新規所有者は jrichards です。

db2move ユーティリティーは、ソース・スキーマとターゲット・スキーマが別々のシステムにある場合にはターゲット・システムで開始する必要があります。 あるデータベースから別のデータベースにスキーマをコピーする場合、このアクションを行うには、ソース・データベースからコピーされるスキーマ名のリスト (コンマで区切られたもの) およびターゲット・データベース名が必要です。

スキーマをコピーするには、オペレーティング・システムのコマンド・プロンプトから db2move を次のように発行します。
     db2move dbname COPY -co COPY-options 
      -u userid -p password