DTS は、ApsaraDB RDS インスタンス間のスキーマ移行、完全データ移行、増分データ移行に対応しています。これら 3 種類の移行を組み合わせることで、ダウンタイムなしで移行を完了できます。
前提条件
ソースとターゲットの ApsaraDB RDS インスタンスは、次のいずれかのデータベースエンジンを使用している必要があります:
|
ソースデータベース |
ターゲットデータベース |
|
ApsaraDB RDS for MySQL ApsaraDB RDS for MariaDB |
ApsaraDB RDS for MySQL ApsaraDB RDS for MariaDB |
|
ApsaraDB RDS for SQL Server |
ApsaraDB RDS for SQL Server |
|
ApsaraDB RDS for PostgreSQL |
ApsaraDB RDS for PostgreSQL |
このトピックでは、従来の Data Transmission Service (DTS) コンソールでの操作について説明します。新しいコンソールの使用手順については、「ApsaraDB RDS for MySQL インスタンス間のデータ移行」、「ApsaraDB RDS for MariaDB インスタンス間のデータ移行」、「ApsaraDB RDS for PostgreSQL インスタンス間のデータ移行」、および「ApsaraDB RDS for SQL Server インスタンス間のデータ移行」をご参照ください。
使用上の注意
-
データ移行では、ソースからデータを読み取り、宛先にコピーしますが、ソースデータは削除されません。データ移行の仕組み
-
完全データ移行中、DTS はソースデータベースと移行先データベースの読み取りおよび書き込みリソースを消費するため、負荷が増加します。データベースのパフォーマンスが低い、仕様が低い、またはワークロードが高い場合 (たとえば、ソースデータベースに低速な SQL クエリやプライマリキーのないテーブルが多く存在する、または移行先データベースでデッドロックが発生するなど)、負荷の増加によってデータベースに負担がかかったり、サービスが中断したりする可能性があります。データ移行は、両方のデータベースの CPU 使用率が 30% 未満であるなど、オフピーク時に実行してください。
-
ソーステーブルにプライマリキーまたは一意制約がなく、一意でないデータが含まれている場合、移行先データベースに重複データが作成される可能性があります。
-
データ整合性を確保するため、完全データ移行中はソース ApsaraDB RDS インスタンスに新しいデータを書き込まないようにしてください。
-
DTS は失敗したタスクを自動的に再試行します。再開されたタスクが宛先データを上書きしないように、サービスを切り替える前にタスクを停止またはリリースしてください。
-
DTS は宛先インスタンスにデータベースを自動的に作成します。ソースデータベース名が ApsaraDB RDS の命名規則に準拠していない場合は、タスクを設定する前に宛先インスタンスで手動でデータベースを作成する必要があります。
説明ApsaraDB RDS の命名規則とデータベースの作成については、(非推奨、「ステップ 1」にリダイレクト) データベースとアカウントの作成 をご参照ください。
-
ApsaraDB RDS for PostgreSQL インスタンス間で移行する場合、切り替え後、宛先のシーケンス値はソースの最大値から引き継がれません。切り替える前に、各ソースシーケンスの最大値をクエリし、それを宛先の開始値として設定してください。次のコマンドを実行して、ソースシーケンスの現在の値を取得し、宛先でシーケンス値をリセットするための
setval文を生成します。do language plpgsql $$ declare nsp name; rel name; val int8; begin for nsp,rel in select nspname,relname from pg_class t2 , pg_namespace t3 where t2.relnamespace=t3.oid and t2.relkind='S' loop execute format($_$select last_value from %I.%I$_$, nsp, rel) into val; raise notice '%', format($_$select setval('%I.%I'::regclass, %s);$_$, nsp, rel, val+1); end loop; end; $$;
課金
|
移行タイプ |
タスク構成料金 |
インターネットトラフィック料金 |
|
スキーマ移行および完全なデータ移行 |
無料です。 |
ターゲットデータベースの アクセス方法 が パブリック IP アドレス に設定されている場合、DTS はインターネットトラフィック料金を請求します。課金概要。 |
|
増分データ移行 |
課金対象です。課金概要。 |
移行タイプ
-
スキーマ移行
Data Transmission Service (DTS) は、選択されたオブジェクトのスキーマ定義を宛先インスタンスに移行します。
-
フルデータ移行
DTS は、選択されたオブジェクトの既存データをすべてソースインスタンスから宛先インスタンスに移行します。
-
増分データ移行
フルデータ移行の完了後、DTS は増分変更をソースから宛先へ継続的に同期し、ダウンタイムなしでの移行を実現します。
増分移行でサポートされる SQL 操作
|
シナリオ |
操作タイプ |
SQL 操作 |
|
DML |
INSERT、UPDATE、DELETE、REPLACE |
|
DDL |
|
|
|
ApsaraDB RDS for SQL Server インスタンス間の移行 |
DML |
INSERT、UPDATE、DELETE 説明
ラージオブジェクト (LOB) フィールドのみを変更する UPDATE ステートメントはサポートされていません。 |
|
DDL |
|
|
|
ApsaraDB RDS for PostgreSQL インスタンス間の移行 |
DML |
INSERT、UPDATE、DELETE |
|
DDL |
|
データベースアカウントの権限
|
シナリオ |
データベース |
スキーマ移行 |
完全データ移行 |
増分データ移行 |
|
ソースインスタンス |
SELECT 権限 |
SELECT 権限 |
REPLICATION CLIENT、REPLICATION SLAVE、SHOW VIEW、および SELECT 権限 |
|
移行先インスタンス |
読み取り/書き込み権限 |
読み取り/書き込み権限 |
読み取り/書き込み権限 |
|
|
ApsaraDB RDS for SQL Server インスタンス間の移行 |
ソースインスタンス |
SELECT 権限 |
SELECT 権限 |
移行オブジェクトに対する所有者権限 説明
特権アカウントは、この要件を満たしています。 |
|
移行先インスタンス |
読み取り/書き込み権限 |
読み取り/書き込み権限 |
読み取り/書き込み権限 |
|
|
ApsaraDB RDS for PostgreSQL インスタンス間の移行 |
ソースインスタンス |
pg_catalog に対する USAGE 権限 |
移行オブジェクトに対する SELECT 権限 |
rds_superuser 説明
|
|
移行先インスタンス |
移行オブジェクトに対する CREATE および USAGE 権限 |
データベースに対する所有者権限 (INSERT、UPDATE、DELETE を含む) 説明
ApsaraDB RDS for PostgreSQL インスタンスの標準アカウントは、この権限要件を満たしています。 |
データベースに対する所有者権限 (INSERT、UPDATE、DELETE を含む) 説明
ApsaraDB RDS for PostgreSQL インスタンスの標準アカウントは、権限要件を満たします。詳細については、「SSL 暗号化の設定」をご参照ください。 |
手順
-
Data Transmission Service (DTS) コンソールにログインします。
説明Data Management (DMS) コンソールに自動的にリダイレクトされる場合は、右下の
アイコンをクリックし、その後
をクリックしてクラシック DTS コンソールに戻ります。 -
左側のナビゲーションウィンドウで、データの移行 をクリックします。
-
移行タスク ページの上部で、宛先インスタンスが配置されているリージョンを選択します。
-
ページの右上隅で、移行タスクの作成 をクリックします。
-
ソースデータベースと宛先データベースを設定します。

セクション
パラメーター
説明
N/A
タスク名
DTS は自動的にタスク名を生成します。識別しやすいように、分かりやすい名前を使用してください。名前は一意である必要はありません。
ソースデータベース
インスタンスタイプ
RDS インスタンス を選択します。
インスタンスリージョン
ソース ApsaraDB RDS インスタンスのリージョンを選択します。
RDS インスタンス ID
ソース ApsaraDB RDS インスタンスの ID を選択します。
説明ソースと宛先は、同じ RDS インスタンスでも、異なる RDS インスタンスでもかまいません。DTS は、2 つのインスタンス間、または単一インスタンス内での移行をサポートしています。
データベース名
ApsaraDB RDS for PostgreSQL インスタンスのソースデータベース名を入力します。
説明このパラメーターは、ApsaraDB RDS インスタンスのエンジンが PostgreSQL の場合にのみ表示され、必須になります。
データベースアカウント
ソース ApsaraDB RDS インスタンスのデータベースアカウントを入力します。必要な権限:「データベースアカウントに必要な権限」。
データベースパスワード
データベースアカウントのパスワードを入力します。
説明ソースデータベース情報を入力した後、データベースのパスワード の横にある 接続テスト をクリックして、情報が正しいかどうかを確認できます。情報が正しい場合、合格 というメッセージが表示されます。メッセージが 失敗 と表示される場合は、失敗 の横にある チェック をクリックし、表示される指示に従ってソースデータベース情報を調整してください。
接続方法
要件に応じて 非暗号化 または SSL 暗号化 を選択します。SSL 暗号化 を選択した場合は、まず ApsaraDB RDS インスタンスの SSL 暗号化を有効にする必要があります。SSL 暗号化を設定する。
説明このパラメーターは、ApsaraDB RDS インスタンスのエンジンがMySQLの場合にのみ表示され、必須となります。
暗号化 パラメーターは、中国 (香港) リージョンと中国本土のリージョンでのみサポートされます。
宛先データベース
インスタンスタイプ
RDS インスタンス を選択します。
インスタンスリージョン
宛先 ApsaraDB RDS インスタンスのリージョンを選択します。
RDS インスタンス ID
宛先 ApsaraDB RDS インスタンスの ID を選択します。
説明ソースと宛先は、同じ RDS インスタンスでも、異なる RDS インスタンスでもかまいません。DTS は、2 つのインスタンス間、または単一インスタンス内での移行をサポートしています。
データベース名
ApsaraDB RDS for PostgreSQL インスタンスの宛先データベース名を入力します。名前はソースデータベース名と異なっていてもかまいません。
説明このパラメーターは、ApsaraDB RDS インスタンスのエンジンが PostgreSQL の場合にのみ表示され、必須になります。
データベースアカウント
宛先 ApsaraDB RDS インスタンスのデータベースアカウントを入力します。必要な権限:「データベースアカウントに必要な権限」。
データベースパスワード
データベースアカウントのパスワードを入力します。
説明宛先データベース情報を入力した後、データベースのパスワード の後に 接続テスト をクリックして、入力した情報が正しいかどうかを確認できます。情報が正しい場合、合格 というメッセージが表示されます。メッセージが 失敗 と表示される場合は、失敗 の後に チェック をクリックし、表示される指示に従って宛先データベース情報を調整してください。
接続方法
要件に応じて、非暗号化 または SSL 暗号化 を選択します。 SSL 暗号化 を選択した場合は、まず ApsaraDB RDS インスタンスで SSL 暗号化を有効にする必要があります (SSL 暗号化の設定)。
説明このパラメーターは、ApsaraDB RDS インスタンスのエンジンが MySQL の場合にのみ表示され、必須となります。
暗号化 パラメーターは、中国 (香港) リージョンおよび中国本土のリージョンでのみサポートされています。
-
右下隅の[ホワイトリストを設定して次へ]をクリックします。
DTS は、選択したリージョンのサーバーの CIDR ブロックを ApsaraDB RDS インスタンスのホワイトリストに自動的に追加します。DTS サーバーの CIDR ブロックについては、「DTS サーバーの CIDR ブロック」をご参照ください。
警告DTS サーバーのパブリック CIDR ブロックを自動または手動で追加すると、セキュリティリスクが生じる可能性があります。本製品を使用することにより、これらの潜在的なリスクを認識し、受け入れるものとします。強力なパスワードの使用、開いているポートの制限、内部 API コールの認証の使用、不要なネットワークセグメントの定期的な確認と制限、または Express Connect、VPN Gateway、Smart Access Gateway などのプライベートネットワーク経由での接続など、基本的なセキュリティ対策を講じる責任はお客様にあります。
-
移行タイプと移行オブジェクトを選択します。

パラメーター
説明
移行タイプ
要件に基づいて移行タイプを選択します。
-
フル移行のみの場合は、スキーマ移行 と [フルデータ移行] を選択します。
-
無停止移行には、スキーマ移行、[フルデータ移行]、[増分データ移行] の 3 種類すべてを選択します。
説明[増分データ移行] を選択しない場合は、データの一貫性を確保するため、移行中にソースインスタンスに新しいデータを書き込まないでください。
移行オブジェクト
[選択可能] ボックスで、移行するオブジェクトを選択し、
をクリックして、選択中のオブジェクト ボックスに移動します。説明-
オブジェクトは、データベース、テーブル、または列レベルで選択できます。テーブルまたは列のみを選択した場合、ビュー、トリガー、ストアドプロシージャなどの他のオブジェクトは移行されません。
-
デフォルトでは、移行先データベースのオブジェクト名はソースデータベースと同じです。移行先データベースのオブジェクト名を変更するには、オブジェクト名マッピング機能を使用します。詳細については、「オブジェクト名マッピング」をご参照ください。
-
オブジェクト名マッピング機能を使用すると、依存オブジェクトの移行が失敗する可能性があります。
オブジェクト名を変更するかどうかを指定
宛先インスタンスで移行オブジェクトの名前を変更するには、オブジェクト名マッピング機能を使用します。詳細については、「データベース、テーブル、およびカラムのマッピング」をご参照ください。
ソースまたは宛先データベースへの接続失敗時の再試行時間範囲を指定
デフォルトでは、ソースまたは宛先データベースへの接続が切断された場合、DTS は 720 分 (12 時間) 再試行します。この期間はカスタマイズできます。再試行期間内に接続が復元されると、タスクは自動的に再開されます。
説明再試行中も DTS の課金は継続します。必要に応じて再試行期間を設定するか、ソースおよび宛先インスタンスがリリースされた後、速やかに DTS インスタンスをリリースしてください。
-
-
これらの設定が完了したら、ページ右下隅の [事前チェックと開始] をクリックします。
説明-
DTS はタスクの開始前に事前チェックを実行します。タスクは事前チェックに合格した後にのみ開始できます。
-
事前チェックに失敗した場合は、失敗した項目の横にある
アイコンをクリックして詳細を表示します。-
詳細に基づいて問題を修正してから、事前チェックを再度実行します。
-
修正を必要としない警告については、無視 または [無視してプリチェックを再実行] を選択してプリチェックを再実行できます。
-
-
-
タスクが事前チェックに合格したら、次へ をクリックします。
-
注文の確認 ページで、インスタンスクラス を選択し、Data Transmission Service (従量課金) 利用規約 チェックボックスをオンにします。
-
購入して起動 をクリックします。移行タスクが開始されます。
-
完全なデータ移行
タスクを手動で停止しないでください。データ損失を回避するため、自動的に完了するまで待機してください。
-
増分データ移行
タスクは自動的には停止しません。手動で停止する必要があります。
説明オフピーク時間帯または宛先インスタンスへの切り替え準備が整ったタイミングでタスクを停止してください。
-
タスクステータスが 増分データ移行 に変わり、遅延なし と表示されるまで待ちます。その後、数分間ソースデータベースへのデータ書き込みを停止します。増分データ移行 のステータスに遅延が表示される場合があります。
-
増分データ移行 のステータスが 遅延なし に戻ったら、移行タスクを手動で停止します。スキーマ移行および完全なデータ移行の進捗はいずれも 100 % になります。移行タスクを一時停止するには、タスクを選択し、下部のバッチ操作バーで 一時停止 をクリックします。
-
-