Data Transmission Service (DTS) は、RDS SQL Server から RDS MySQL へのデータ移行をサポートしています。
前提条件
-
DTS がご利用の RDS SQL Server インスタンスのバージョンをサポートしていることを確認します。
説明サポートされているバージョンの詳細については、「移行ソリューションの概要」をご参照ください。
-
移行先の RDS MySQL インスタンスを作成します。移行先インスタンスのストレージ容量は、ソースの RDS SQL Server インスタンスの使用済みストレージ容量よりも大きい必要があります。インスタンスの作成方法の詳細については、「ApsaraDB RDS for MySQL インスタンスの作成」をご参照ください。
-
ソースインスタンスが次のいずれかの条件を満たす場合は、移行を複数のタスクに分割します。
-
データベースの数が 10 を超える。
-
単一のデータベースで 1 時間に 1 回以上ログバックアップが実行される。
-
単一のデータベースで 1 時間に 100 回以上 DDL 操作が実行される。
-
単一のデータベースのログボリュームが 20 MB/s を超える。
-
1,000 を超えるテーブルに対して変更データキャプチャ (CDC) を有効にする必要がある。
-
注意事項
スキーマ移行中、DTS は外部キーをソースデータベースからターゲットデータベースに移行します。
完全データ移行および増分データ移行中、DTS はセッションレベルで制約チェックと外部キーのカスケード操作を一時的に無効にします。タスクの実行中にソースデータベースでカスケード更新または削除操作が発生した場合、データ不整合が発生する可能性があります。
タイプ | 説明 |
ソースデータベースの制限 |
|
その他の制限 |
|
特殊なケース | ソースインスタンスが RDS for SQL Server インスタンスの場合、DTS はデータ移行用にソースインスタンスに |
課金
|
移行タイプ |
リンク設定料金 |
データ転送料金 |
|
スキーマ移行と完全データ移行 |
無料です。 |
この例では無料です。 説明
ターゲットデータベースの アクセス方法 を パブリック IP アドレス に設定した場合、データ転送に対して課金されます。詳細については、「課金の概要」をご参照ください。 |
|
増分データ移行 |
料金が発生します。詳細については、「課金の概要」をご参照ください。 |
増分移行でサポートされる SQL 操作
|
操作タイプ |
SQL 操作 |
|
DML |
INSERT、UPDATE、DELETE 説明
ラージオブジェクト列のみを変更する UPDATE 文はサポートされていません。 |
|
DDL |
説明
|
データベースアカウントに必要な権限
|
データベース |
スキーマ移行 |
完全移行 |
増分移行 |
|
RDS SQL Server インスタンス |
移行対象オブジェクトに対する読み取り権限 |
移行対象オブジェクトに対する読み取り権限 |
移行対象オブジェクトに対する所有者権限 |
|
RDS MySQL インスタンス |
読み取りおよび書き込み権限 |
||
次のようにデータベースアカウントを作成し、権限を付与できます:
-
RDS SQL Server インスタンス:詳細については、「標準アカウント、特権アカウント、またはグローバル読み取り専用アカウントの作成」および「アカウントの権限の変更」をご参照ください。
-
RDS MySQL インスタンス:詳細については、「アカウントの作成」および「アカウントの権限の変更」をご参照ください。
操作手順
-
次のいずれかの方法で、ターゲットリージョンの移行タスクリストページに移動します。
DTS コンソールから
-
「Data Transmission Service (DTS) コンソール」にログインします。
-
左側のナビゲーションウィンドウで、データの移行 をクリックします。
-
ページの左上隅で、移行インスタンスが配置されているリージョンを選択します。
DMS コンソールから
説明実際の操作は、DMS コンソールのモードとレイアウトによって異なる場合があります。詳細については、「シンプルモードコンソール」および「DMS コンソールのレイアウトとスタイルのカスタマイズ」をご参照ください。
-
「Data Management (DMS) コンソール」にログインしてください。Data Management (DMS) コンソール。
-
トップメニューバーで、 を選択します。
-
「データ移行タスク」の右側で、移行インスタンスが配置されているリージョンを選択します。
-
-
[タスクの作成] をクリックして、タスク構成ページに移動します。
-
ソースデータベースとターゲットデータベースを設定します。
警告ソースインスタンスと宛先インスタンスを選択した後、ページの上部に表示される制限を注意深くお読みになることを推奨します。そうしないと、タスクが失敗したり、データ不整合が発生したりする可能性があります。
カテゴリ
設定
説明
N/A
タスク名
DTS は自動的にタスク名を生成します。簡単に識別できるように、わかりやすい名前を指定することを推奨します。名前は一意である必要はありません。
移行元データベース
既存の接続情報の選択
-
システムに追加された (作成または保存された) データベースインスタンスを使用するには、ドロップダウンリストから目的のデータベースインスタンスを選択します。以下のデータベース情報が自動的に設定されます。
説明DMS コンソールでは、このパラメーターは DMS データベースインスタンスの選択 と名付けられています。
-
データベースインスタンスをシステムに登録していない場合、または登録済みのインスタンスを使用する必要がない場合は、以下のデータベース情報を手動で設定します。
データベースタイプ
SQL Server を選択します。
アクセス方法
Alibaba Cloud インスタンス を選択します。
インスタンスのリージョン
ソースの RDS SQL Server インスタンスが存在するリージョンを選択します。
Alibaba Cloud アカウント間でデータを複製
この例では、同じ Alibaba Cloud アカウントに属するインスタンス間でデータを移行する方法を示します。× を選択します。
RDS インスタンス ID
ソースの RDS SQL Server インスタンスの ID を選択します。
データベースアカウント
ソースの RDS SQL Server インスタンスのデータベースアカウントを入力します。必要な権限の詳細については、「データベースアカウントに必要な権限」をご参照ください。
データベースのパスワード
データベースアカウントのパスワードを入力します。
暗号化
お使いの環境に応じて、非暗号化 または SSL 暗号化 を選択します。
-
ソースデータベースで SSL 暗号化が無効になっている場合、非暗号化 を選択します。
-
ソースデータベースで SSL 暗号化が有効になっている場合は、SSL 暗号化 を選択します。DTS はデフォルトでサーバー証明書を信頼します。
移行先データベース
既存の接続情報の選択
-
システムに追加された (作成または保存された) データベースインスタンスを使用するには、ドロップダウンリストから目的のデータベースインスタンスを選択します。以下のデータベース情報が自動的に設定されます。
説明DMS コンソールでは、このパラメーターは DMS データベースインスタンスの選択 と名付けられています。
-
データベースインスタンスをシステムに登録していない場合、または登録済みのインスタンスを使用する必要がない場合は、以下のデータベース情報を手動で設定します。
データベースタイプ
MySQL を選択します。
アクセス方法
[Alibaba Cloud Instance] を選択します。
インスタンスのリージョン
ターゲットの RDS MySQL インスタンスが存在するリージョンを選択します。
Alibaba Cloud アカウント間でデータを複製
この例では、同じ Alibaba Cloud アカウントに属するインスタンス間でデータを移行する方法を示します。× を選択します。
RDS インスタンス ID
ターゲットの RDS MySQL インスタンスの ID を選択します。
データベースアカウント
ターゲットの RDS MySQL インスタンスのデータベースアカウントを入力します。必要な権限の詳細については、「データベースアカウントに必要な権限」をご参照ください。
データベースのパスワード
データベースアカウントのパスワードを入力します。
暗号化
データベースの要件に基づいて、非暗号化 または SSL 暗号化 を選択します。このパラメーターを SSL 暗号化 に設定する場合は、事前に RDS for MySQL インスタンスの SSL 暗号化を有効にしておく必要があります。詳細については、「クラウド証明書を使用して SSL 暗号化を迅速に有効化する」をご参照ください。
-
-
構成が完了したら、ページの下部にある接続をテストして続行をクリックします。
説明-
DTS サーバーからのアクセスを許可するために、DTS サービスの IP アドレスセグメントがソースおよびターゲットデータベースのセキュリティ設定に自動または手動で追加されていることを確認してください。詳細については、「DTS サーバーの IP アドレスをホワイトリストに追加する」をご参照ください。
-
ソースまたはターゲットデータベースが自己管理データベース(アクセス方法 が Alibaba Cloud インスタンス でない場合)、表示される DTS サーバーの CIDR ブロック ダイアログボックスで 接続テスト をクリックする必要があります。
-
-
タスクオブジェクトを設定します。
-
「オブジェクト設定」ページで、移行するオブジェクトを設定します。
設定
説明
移行タイプ
-
完全移行のみが必要な場合は、スキーマ移行 と 完全データ移行 の両方を選択します。
-
ダウンタイムなしで移行を実行するには、スキーマ移行、完全データ移行、および増分データ移行を選択します。
説明-
スキーマ移行 を選択しない場合は、データを受信するデータベースとテーブルがターゲットデータベースに存在することを確認してください。また、必要に応じて 選択中のオブジェクト ボックスのオブジェクト名マッピング機能を使用することもできます。
-
「増分データ移行」を選択しない場合は、データ整合性を確保するために、データ移行中にソースインスタンスに新しいデータを書き込まないでください。
移行元データベースと移行先データベースのスキーママッピングモード
ビジネスニーズに基づいてスキーママッピングモードを選択し、ソースデータベースとターゲットデータベース間のスキーマをマッピングします。
警告ソースデータベース内の複数のスキーマに同じ名前のテーブルを含めることはできません。そうしないと、データ不整合やタスクの失敗が発生する可能性があります。
SQL Server 増分同期モード
-
クラスター化テーブルはログ解析で増分同期し、ヒープテーブルの場合は CDC で増分同期します (ハイブリッド式ログ解析):
-
利点:
-
ソースのヒープテーブル、プライマリキーのないテーブル、圧縮テーブル、または計算列のあるテーブルを含むシナリオをサポートします。
-
高いリンク安定性を提供します。このモードは完全な DDL 文を取得でき、幅広い DDL シナリオをサポートします。
-
-
欠点:
-
DTS はソースデータベースに `dts_cdc_sync_ddl` トリガー、`dts_sync_progress` ハートビートテーブル、および `dts_cdc_ddl_history` DDL ストレージテーブルを作成します。また、データベースレベルの CDC と一部のテーブルの CDC も有効にします。
-
ソースデータベースで CDC が有効になっているテーブルに対して `SELECT INTO`、`TRUNCATE`、または `RENAME COLUMN` 文を実行することはできません。ソースデータベースで DTS によって作成されたトリガーを手動で削除することはできません。
-
-
-
ソースデータベースのログに基づく増分同期 (ヒープテーブル非対応):
-
利点:
このモードはソースデータベースに対して非侵入型です。
-
欠点:
このモードは、ソースのヒープテーブル、プライマリキーのないテーブル、圧縮テーブル、または計算列のあるテーブルを含むシナリオをサポートしません。
-
-
増分同期のための CDC インスタンスのポーリングとクエリ:
-
利点:
-
ソースデータベースが Amazon RDS for SQL Server、Azure SQL Database、Azure SQL Managed Instance、Azure SQL Server on Virtual Machine、または Google Cloud SQL for SQL Server の場合に、完全移行と増分移行をサポートします。
-
このモードは、SQL Server のネイティブ CDC コンポーネントを使用して増分データを取得するため、増分移行の安定性が向上し、ネットワーク帯域幅の使用量が削減されます。
-
-
欠点:
-
DTS インスタンスが使用するソースデータベースアカウントには、CDC を有効にする権限が必要です。増分データ移行には約 10 秒の遅延があります。
-
複数のデータベースにまたがる複数のテーブルを移行する場合、安定性とパフォーマンスの問題が発生する可能性があります。
-
-
説明このパラメーターは、「増分データ移行」を「移行タイプ」で選択した場合にのみ利用できます。
DTS がサポートする CDC が有効になっているテーブルの最大数の制限
この移行インスタンスで CDC を有効にできるテーブルの最大数を指定します。デフォルト値は 1,000 です。
説明このオプションは、SQL Server 増分同期モード が ソースデータベースのログに基づく増分同期 (ヒープテーブル非対応) に設定されている場合は表示されません。
競合するテーブルの処理モード
-
エラーの事前チェックと報告:ターゲットデータベースに同じ名前のテーブルが存在するかどうかをチェックします。同じ名前のテーブルが存在しない場合、事前チェックは合格します。同じ名前のテーブルが存在する場合、事前チェック中にエラーが報告され、データ移行タスクは開始されません。
説明ターゲットデータベースのテーブルが同じ名前で、簡単に削除または名前変更できない場合は、ターゲットデータベースのテーブルの名前を変更できます。詳細については、「オブジェクト名マッピング」をご参照ください。
-
エラーを無視して続行: 同名のテーブルのチェックをスキップします。
警告「エラーを無視して続行」を選択すると、データの不整合およびビジネスリスクを引き起こす可能性があります。例:
-
テーブルスキーマが一貫しており、ターゲットデータベースのレコードがソースデータベースのレコードと同じプライマリキー値を持つ場合:
-
完全移行中、DTS はターゲットデータベースのレコードを保持します。ソースデータベースからのレコードは移行されません。
-
増分移行中、DTS はターゲットデータベースのレコードを保持しません。ソースデータベースからのレコードがターゲットデータベースのレコードを上書きします。
-
-
テーブルスキーマが不整合な場合、一部の列のデータのみが移行されるか、移行が失敗する可能性があります。注意して進めてください。
-
移行先インスタンスでのオブジェクト名の大文字化
移行対象オブジェクト(例:データベース、テーブル、および列)の名前について、宛先インスタンスで大文字小文字の区別ポリシーを設定できます。デフォルトでは、DTS のデフォルトポリシー が選択されています。また、ソースまたはターゲットデータベースのデフォルトポリシーと一致するように、大文字小文字の区別を維持することもできます。詳細については、「宛先データベースにおけるオブジェクト名の大文字小文字の区別」をご参照ください。
ソースオブジェクト
[ソースオブジェクト] ボックスで、移行するオブジェクトをクリックし、
をクリックして [選択中のオブジェクト] ボックスに移動します。説明データベース、テーブル、または列レベルで移行するオブジェクトを選択できます。テーブルまたは列を選択した場合、ビュー、トリガー、ストアドプロシージャなどの他のオブジェクトはターゲットデータベースに移行されません。
選択中のオブジェクト
宛先インスタンスに移行するオブジェクトの名前を変更するには、[選択されたオブジェクト] セクションでそのオブジェクトを右クリックします。詳細については、「個別のテーブル列マッピング」をご参照ください。
複数のオブジェクトの名前を一度に変更するには、[選択したオブジェクト] セクションの右上隅にある [一括編集] をクリックします。 詳細については、「複数のオブジェクト名を一度にマッピングする」をご参照ください。
説明-
オブジェクト名マッピング機能を使用すると、マッピングされたオブジェクトに依存する他のオブジェクトの移行が失敗する可能性があります。
-
WHERE 句を使用してデータをフィルターするには、選択中のオブジェクト ボックス内の移行対象のテーブルを右クリックし、表示されるダイアログボックスでフィルター条件を設定します。フィルター条件の設定方法について詳しくは、「フィルター条件の設定」をご参照ください。
-
増分移行用の SQL 操作をデータベースレベルまたはテーブルレベルで選択するには、選択中のオブジェクト ボックス内の移行対象のオブジェクトを右クリックし、表示されるダイアログボックスで目的の増分移行用 SQL 操作を選択します。
-
-
高度なパラメーターを設定するには、詳細設定へ をクリックします。
設定
説明
タスクのスケジュールに使用する専用クラスターの選択
デフォルトでは、DTS は共有クラスターでタスクをスケジュールします。選択する必要はありません。より安定したタスクが必要な場合は、DTS 移行タスクを実行するために専用クラスターを購入できます。
失敗した接続の再試行時間
移行タスクが開始された後、ソースまたはターゲットデータベースへの接続が失敗した場合、DTS はエラーを報告し、すぐに接続のリトライを開始します。デフォルトのリトライ時間は 720 分です。リトライ時間を 10 分から 1440 分の間の値にカスタマイズできます。30 分以上に設定することを推奨します。指定された時間内に DTS がソースおよびターゲットデータベースに再接続した場合、移行タスクは自動的に再開されます。そうでない場合、タスクは失敗します。
説明-
同じソースまたはターゲットを共有する複数の DTS インスタンスの場合、ネットワークリトライ時間は最後に作成されたタスクの設定によって決まります。
-
接続リトライ期間中はタスクに料金が発生するため、ビジネスニーズに基づいてリトライ時間をカスタマイズするか、ソースおよびターゲットデータベースインスタンスがリリースされた後、できるだけ早く DTS インスタンスをリリースすることを推奨します。
移行元データベースと移行先データベースで他の問題が発生した場合の、再試行までの待機時間です。
移行タスクが開始された後、ソースまたはターゲットデータベースで DDL または DML 実行例外などの接続以外の問題が発生した場合、DTS はエラーを報告し、すぐに操作のリトライを開始します。デフォルトのリトライ時間は 10 分です。リトライ時間を 1 分から 1440 分の間の値にカスタマイズできます。10 分以上に設定することを推奨します。指定されたリトライ時間内に関連する操作が成功した場合、移行タスクは自動的に再開されます。そうでない場合、タスクは失敗します。
重要移行元データベースと移行先データベースで他の問題が発生した場合の、再試行までの待機時間です。 の値は、失敗した接続の再試行時間 の値より小さくする必要があります。
完全移行率を制限するかどうか
完全移行中、DTS はソースデータベースおよびターゲットデータベースの読み取りおよび書き込みリソースを消費するため、データベースの負荷が増加する場合があります。必要に応じて、完全移行タスクに対して速度制限を有効化できます。1 秒あたりのソースデータベースのクエリ率 QPS、1 秒あたりの完全移行の行数 RPS、および1 秒あたりの完全移行データ量 (MB) BPSを設定して、ターゲットデータベースの負荷を軽減できます。
説明-
この設定項目は、移行タイプ で 完全データ移行 を選択した場合にのみ利用可能です。
-
移行インスタンスの実行後に完全移行速度を調整することもできます。
増分移行率を制限するかどうか
必要に応じて、増分移行タスクに速度制限を設定することもできます。1 秒あたりの増分移行の行数 RPS と 1 秒あたりの増分移行データ量 (MB) BPS を設定することで、ターゲットデータベースの負荷を軽減できます。
説明-
この設定項目は、増分データ移行 を 移行タイプ で選択した場合にのみ利用できます。
-
移行インスタンスの実行後に増分移行速度を調整することもできます。
環境タグ
必要に応じて環境タグを選択してインスタンスを識別できます。この例では、選択は不要です。
ETL 機能の設定
抽出・変換・書き出し (ETL) 機能を有効にするかどうかを選択します。詳細については、「ETL とは?」をご参照ください。有効な値:
-
○: ETL 機能を有効化します。コードエディタにデータ処理文を入力します。詳細については、「データ移行またはデータ同期タスクでの ETL の設定」をご参照ください。
-
×:ETL 機能を無効にします。
監視アラート
ビジネスニーズに基づいて、アラートを設定し、アラート通知を受け取るかどうかを選択します。
-
×: アラートを設定しません。
-
○: アラートのしきい値とアラート通知を設定してアラートを構成します。移行が失敗するか、レイテンシーがしきい値を超えると、システムからアラート通知が送信されます。
-
-
データ検証タスクを設定するには、[次へ: データ検証] をクリックします。
データ検証機能の詳細については、「データ検証の設定」をご参照ください。
-
-
タスクを保存し、事前チェックを実行します。
-
このインスタンスの設定用パラメーターを API 操作呼び出し時に表示するには、次:タスク設定の保存と事前チェック ボタンにポインターを移動し、表示される吹き出し内の OpenAPI パラメーターのプレビュー をクリックします。
-
API パラメーターを表示する必要がない場合、または表示が完了した場合は、ページの下部にある次:タスク設定の保存と事前チェックをクリックします。
説明-
移行タスクが開始される前に、DTS は事前チェックを実行します。タスクは事前チェックに合格した後にのみ開始されます。
-
事前チェックが失敗した場合、失敗したチェック項目の横にある詳細を表示をクリックし、プロンプトに基づいて問題を修正して、事前チェックを再実行してください。
-
事前チェック中に警告が報告された場合:
-
無視できないチェック項目については、失敗した項目の横にある 詳細を表示 をクリックし、表示されるメッセージに従って問題を修正した後、事前チェックを再度実行してください。
-
無視できるチェック項目については、アラートの詳細を確認、無視、OK、再度事前チェックを実行 をクリックして、アラート項目をスキップし、再度事前チェックを実行できます。 警告を無視すると、データの不整合などの問題が発生し、ビジネスにリスクをもたらす可能性があります。
-
-
-
インスタンスを購入します。
-
「成功率」が 100% の場合、「次:インスタンスの購入」をクリックします。
-
「購入」ページで、データ移行インスタンスのリンク仕様を選択します。詳細については、次の表をご参照ください。
カテゴリ
パラメーター
説明
新しいインスタンスクラス
リソースグループの設定
インスタンスが属するリソースグループを選択します。デフォルト値はデフォルトリソースグループです。詳細については、「Resource Management とは?」をご参照ください。
インスタンスクラス
DTS は、異なるパフォーマンスレベルの移行仕様を提供します。リンク仕様は移行速度に影響します。ビジネスシナリオに基づいて仕様を選択できます。詳細については、「データ移行リンク仕様」をご参照ください。
-
構成が完了したら、Data Transmission Service (従量課金) 利用規約をお読みいただき、選択します。
-
[購入して起動]をクリックします。表示される[OK]ダイアログボックスで、[OK]をクリックします。
移行タスクの進捗は、データ移行タスク 一覧ページで確認できます。
説明-
移行タスクに増分移行が含まれていない場合、完全移行が完了すると自動的に停止します。タスクが停止すると、そのステータスは完了に変化します。
-
移行タスクに増分移行が含まれている場合、タスクは自動的に停止しません。増分移行タスクは実行を継続し、そのステータスは実行中になります。
-
-