Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SAP Sybase SQL Anywhere 16.0 » SQL Anywhere サーバ SQL の使用法 » データのインポートとエクスポート » SQL Anywhere へのデータベース移行 » sa_migrate システムプロシージャ

 

データベースマイグレーションシステムプロシージャを使用した個別のテーブルの移行

データベースマイグレーションシステムプロシージャを使用して、個別のテーブルを移行できます。

前提条件

次のシステム権限が必要です。

  • CREATE ANY TABLE

  • CREATE ANY INDEX

  • INSERT ANY TABLE

  • SELECT ANY TABLE

  • ALTER ANY TABLE

  • DROP ANY TABLE

事前にリモートサーバを作成しておく必要があります。ターゲットデータベース内にそのテーブルを所有するユーザが必要です。

外部ログインを作成するには、MANAGE ANY USER システム権限が必要です。

内容と備考

table-nameowner-name パラメータには、NULL を入力しないでください。両方に NULL を指定すると、システムテーブルを含む、データベース内のすべてのテーブルが移行します。また、リモートデータベースで、テーブルの所有者が異なっていても名前が同じ場合、それらのテーブルはターゲットデータベースに移行すると 1 人の所有者に属します。一度に移行するテーブルは、1 人の所有者に関連付けられたテーブルだけにすることをおすすめします。

 ♦ タスク
  1. ターゲットデータベースを作成します。

  2. Interactive SQL からターゲットデータベースに接続します。

  3. (省略可) リモートデータベースに接続できるように外部ログインを作成します。外部ログインは、ユーザがターゲットデータベースとリモートデータベースで異なるパスワードを使用している場合、またはターゲットデータベースで使用しているユーザ ID とは異なるユーザ ID でリモートデータベースにログインする場合にのみ必要です。

  4. sa_migrate_create_remote_table_list システムプロシージャを実行します。次に例を示します。

    CALL sa_migrate_create_remote_table_list( 'rmt_server1',
         NULL, 'remote_user1', 'mydb' );

    リモートサーバの名前を指定してください。

    このプロシージャにより、移行するリモートテーブルのリストが dbo.migrate_remote_table_list テーブルに移植されます。このテーブルから、移行しないリモートテーブルのローを削除できます。

  5. sa_migrate_create_tables システムプロシージャを実行します。次に例を示します。

    CALL sa_migrate_create_tables( 'local_user1' );

    このプロシージャは、dbo.migrate_remote_table_list からリモートテーブルのリストを取り出し、リストにあるテーブルごとにプロキシテーブルとベーステーブルを作成します。また、移行したテーブルのプライマリキーインデックスもすべて作成します。

  6. リモートテーブルからターゲットデータベース上のベーステーブルにデータを移行する場合は、sa_migrate_data システムプロシージャを実行します。次に例を示します。

    CALL sa_migrate_data( 'local_user1' );

    このプロシージャは、各リモートテーブルから、sa_migrate_create_tables プロシージャで作成されたベーステーブルにデータを移行します。

    リモートデータベースから外部キーを移行しない場合は、手順 10 に進みます。

  7. sa_migrate_create_remote_fks_list システムプロシージャを実行します。次に例を示します。

    CALL sa_migrate_create_remote_fks_list( 'rmt_server1' );

    このプロシージャは、dbo.migrate_remote_table_list にリストされている各リモートテーブルに関連した外部キーのリストを、テーブル dbo.migrate_remote_fks_list に設定します。

    再作成しない外部キーマッピングを、ローカルのベーステーブルから削除できます。

  8. sa_migrate_create_fks システムプロシージャを実行します。次に例を示します。

    CALL sa_migrate_create_fks( 'local_user1' );

    このプロシージャは、dbo.migrate_remote_fks_list に定義されている外部キーマッピングをベーステーブル上に作成します。

  9. 移行用に作成されたプロキシテーブルを削除する場合は、sa_migrate_drop_proxy_tables システムプロシージャを実行します。次に例を示します。

    CALL sa_migrate_drop_proxy_tables( 'local_user1' );

結果

このプロシージャは、移行用に作成したプロキシテーブルをすべて削除し、移行プロセスを完了します。

 参照