データベースマイグレーションシステムプロシージャを使用して、個別のテーブルを移行できます。
前提条件
次のシステム権限が必要です。
CREATE ANY TABLE
CREATE ANY INDEX
INSERT ANY TABLE
SELECT ANY TABLE
ALTER ANY TABLE
DROP ANY TABLE
事前にリモートサーバを作成しておく必要があります。ターゲットデータベース内にそのテーブルを所有するユーザが必要です。
外部ログインを作成するには、MANAGE ANY USER システム権限が必要です。
内容と備考
table-name と owner-name パラメータには、NULL を入力しないでください。両方に NULL を指定すると、システムテーブルを含む、データベース内のすべてのテーブルが移行します。また、リモートデータベースで、テーブルの所有者が異なっていても名前が同じ場合、それらのテーブルはターゲットデータベースに移行すると 1 人の所有者に属します。一度に移行するテーブルは、1 人の所有者に関連付けられたテーブルだけにすることをおすすめします。
ターゲットデータベースを作成します。
Interactive SQL からターゲットデータベースに接続します。
(省略可) リモートデータベースに接続できるように外部ログインを作成します。外部ログインは、ユーザがターゲットデータベースとリモートデータベースで異なるパスワードを使用している場合、またはターゲットデータベースで使用しているユーザ ID とは異なるユーザ ID でリモートデータベースにログインする場合にのみ必要です。
sa_migrate_create_remote_table_list システムプロシージャを実行します。次に例を示します。
CALL sa_migrate_create_remote_table_list( 'rmt_server1', NULL, 'remote_user1', 'mydb' ); |
リモートサーバの名前を指定してください。
このプロシージャにより、移行するリモートテーブルのリストが dbo.migrate_remote_table_list テーブルに移植されます。このテーブルから、移行しないリモートテーブルのローを削除できます。
sa_migrate_create_tables システムプロシージャを実行します。次に例を示します。
CALL sa_migrate_create_tables( 'local_user1' ); |
このプロシージャは、dbo.migrate_remote_table_list からリモートテーブルのリストを取り出し、リストにあるテーブルごとにプロキシテーブルとベーステーブルを作成します。また、移行したテーブルのプライマリキーインデックスもすべて作成します。
リモートテーブルからターゲットデータベース上のベーステーブルにデータを移行する場合は、sa_migrate_data システムプロシージャを実行します。次に例を示します。
CALL sa_migrate_data( 'local_user1' ); |
このプロシージャは、各リモートテーブルから、sa_migrate_create_tables プロシージャで作成されたベーステーブルにデータを移行します。
リモートデータベースから外部キーを移行しない場合は、手順 10 に進みます。
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 に設定します。
再作成しない外部キーマッピングを、ローカルのベーステーブルから削除できます。
sa_migrate_create_fks システムプロシージャを実行します。次に例を示します。
CALL sa_migrate_create_fks( 'local_user1' ); |
このプロシージャは、dbo.migrate_remote_fks_list に定義されている外部キーマッピングをベーステーブル上に作成します。
移行用に作成されたプロキシテーブルを削除する場合は、sa_migrate_drop_proxy_tables システムプロシージャを実行します。次に例を示します。
CALL sa_migrate_drop_proxy_tables( 'local_user1' ); |
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2013, SAP AG or an SAP affiliate company. - SAP Sybase SQL Anywhere 16.0 |