Data Transmission Service (DTS) を使用して、サンドボックスインスタンスから ApsaraDB RDS for MySQL インスタンスにデータを移行します。これは、サンドボックスに書き込まれたデータを保持したり、緊急リカバリを完了したりするために行います。
利用シーン
サンドボックスへの書き込みの保持:サンドボックスインスタンスでの読み取りおよび書き込み操作は、ソースデータベースに影響を与えません。サンドボックスに書き込まれたデータを保持するには、ApsaraDB RDS for MySQL インスタンスに移行します。
リカバリの高速化:サンドボックス機能は、標準のリカバリ方法よりも高速にバックアップセットを復元します。緊急ディザスタリカバリ用にサンドボックスインスタンスを作成し、必要なテーブルまたはデータベースを ApsaraDB RDS for MySQL インスタンスに移行します。
前提条件
開始する前に、以下を確認してください:
サンドボックスインスタンスが復元されていること。詳細については、「ApsaraDB RDS for MySQL インスタンスの緊急リカバリ機能の使用」をご参照ください。
送信先の ApsaraDB RDS for MySQL インスタンスの利用可能なストレージが、移行するデータの合計サイズを超えています。ストレージを増やすには、「インスタンスの仕様を変更する」をご参照ください。
注意事項
DTS はサンドボックスインスタンスからデータを読み取り、ApsaraDB RDS for MySQL インスタンスにコピーします。サンドボックスインスタンス内のデータは影響を受けたり、削除されたりすることはありません。
データ整合性を維持するため、完全データ移行中はサンドボックスインスタンスへの書き込みを停止してください。
その他の注意事項については、「自己管理 MySQL データベースから ApsaraDB RDS for MySQL インスタンスへのデータ移行」の「注意事項」セクションをご参照ください。
課金
| 移行タイプ | インスタンス構成料金 | インターネットトラフィック料金 |
|---|---|---|
| スキーマ移行と完全データ移行 | 無料 | [アクセス方法] が パブリック IP アドレス に設定されている場合に課金されます。「課金概要」をご参照ください。 |
| 増分データ移行 | 課金されます。詳細については、「課金概要」をご参照ください。 |
サンドボックスインスタンスからのデータ移行
ステップ1:データ移行タスクを開く
Data Management (DMS) コンソールにログインします。
上部のナビゲーションバーで、[Data + AI] をクリックします。
左側のナビゲーションウィンドウで、[DTS (DTS) > データ移行] を選択します。
ステップ2:移行タスクの作成
[データ移行タスク] の横にあるドロップダウンリストから、移行インスタンスを実行するリージョンを選択します。
[タスクの作成] をクリックします。
[データ同期タスクの作成] ウィザードで、ソースデータベースとターゲットデータベースを設定します。
ソースデータベースとターゲットデータベースを設定した後、先に進む前にページ上部に表示される [使用制限] をお読みください。このステップをスキップすると、タスクが失敗したり、データの不整合が発生したりする可能性があります。
一般パラメーター
| パラメーター | 説明 |
|---|---|
| タスク名 | DTS タスクの名前。DTS は自動的に名前を生成します。タスクを識別するために、説明的な名前を指定してください。一意である必要はありません。 |
ソースデータベースのパラメーター
| パラメーター | 説明 |
|---|---|
| DMS データベースインスタンスの選択 | 既存のインスタンスを選択すると、DTS が自動的にパラメーターを入力します。既存のインスタンスを使用しない場合は、手動でパラメーターを設定します。 |
| データベースタイプ | [MySQL] を選択します。 |
| アクセス方法 | [Express Connect、VPN Gateway、または Smart Access Gateway] を選択します。 |
| インスタンスリージョン | サンドボックスインスタンスが実行されているリージョン。 |
| Alibaba Cloud アカウント間でのデータ複製 | 同じアカウント内で移行する場合は [いいえ] を選択します。 |
| 接続済み VPC | サンドボックスインスタンスへの接続に使用される VPC (Virtual Private Cloud)。VPC コンソールで VPC を確認してください。 |
| IP アドレスまたはドメイン名 | サンドボックスインスタンスのエンドポイント。サンドボックスインスタンスの詳細ページで確認できます。 |
| ポート番号 | サンドボックスインスタンスへの接続に使用するポート。デフォルト:3306。 |
| データベースアカウント | サンドボックスインスタンスのデータベースアカウント。サンドボックスにバックアップされたソースデータベースのアカウントと一致する必要があります。必要な権限については、「データベースアカウントに必要な権限」をご参照ください。 |
| データベースパスワード | データベースアカウントのパスワード。 |
| 暗号化 | サンドボックスインスタンスで SSL 暗号化が有効になっていない場合は [非暗号化] を選択します。SSL 暗号化が有効になっている場合は [SSL 暗号化] を選択します。その場合、[CA 証明書] をアップロードし、[CA キー] を設定する必要もあります。 |
ターゲットデータベースのパラメーター
| パラメーター | 説明 |
|---|---|
| DMS データベースインスタンスの選択 | 既存のインスタンスを選択すると、DTS が自動的にパラメーターを入力します。既存のインスタンスを使用しない場合は、手動でパラメーターを設定します。 |
| データベースタイプ | [MySQL] を選択します。 |
| アクセス方法 | [Alibaba Cloud インスタンス] を選択します。 |
| インスタンスリージョン | 移行先の ApsaraDB RDS for MySQL インスタンスが実行されているリージョン。 |
| Alibaba Cloud アカウント間でのデータ複製 | 同じアカウント内で移行する場合は [いいえ] を選択します。 |
| RDS インスタンス ID | 移行先の ApsaraDB RDS for MySQL インスタンスの ID。 |
| データベースアカウント | 移行先インスタンスのデータベースアカウント。必要な権限については、「データベースアカウントに必要な権限」をご参照ください。 |
| データベースパスワード | データベースアカウントのパスワード。 |
| 暗号化 | 「[非暗号化]」または「[SSL 暗号化]」を選択します。SSL 暗号化を使用するには、このタスクを設定する前に、ApsaraDB RDS for MySQL インスタンスで SSL 暗号化を有効化する必要があります。詳しくは、「クラウド証明書を使用して SSL 暗号化を有効化する」をご参照ください。 |
[接続テストと続行] をクリックします。
サンドボックスインスタンスに IP アドレスホワイトリストが設定されている場合は、DTS サーバーの CIDR ブロックをホワイトリストに追加し、[接続テスト] をクリックします。
DTS サーバーの CIDR ブロックをデータベースのホワイトリストに追加すると、セキュリティリスクが生じます。続行する前に、強力な認証情報の使用、公開ポートの制限、API 呼び出しの認証、ホワイトリストの定期的な監査、パブリック IP アドレスの代わりに Express Connect、VPN Gateway、または Smart Access Gateway を介した接続などの予防措置を講じてください。
ステップ3:移行オブジェクトの設定
[オブジェクトの設定] ページで、移行する対象を設定します。
移行タイプ
継続性の要件に基づいて移行タイプを選択します:
| 目標 | 選択する移行タイプ | データ整合性に関する注意 |
|---|---|---|
| 完全移行のみ (ソースを短時間オフラインにできる場合) | [スキーマ移行] + [完全データ移行] | ソースとターゲットのデータ整合性を保つため、移行中はサンドボックスインスタンスへの書き込みを停止してください。 |
| 最小限のダウンタイムでの継続的な移行 | [スキーマ移行] + [完全データ移行] + [増分データ移行] | 移行中のサンドボックスインスタンスへの書き込みがサポートされています。 |
[スキーマ移行] を選択しない場合は、移行前に手動でターゲットデータベースとテーブルを作成し、[選択したオブジェクト] でオブジェクト名マッピングを有効にする必要があります。
[増分データ移行] を選択しない場合は、移行中にソースデータベースにデータを書き込まないことを推奨します。これにより、ソースデータベースとターゲットデータベース間のデータ整合性が確保されます。
その他の設定オプション
| 設定 | 説明 |
|---|---|
| ソースデータベースのトリガーを移行する方法 | トリガーの移行方法を選択します。移行対象オブジェクトにトリガーが含まれない場合は、このパラメーターをスキップしてください。[スキーマ移行] および [増分データ移行] の両方が選択されている場合にのみ設定可能です。詳細については、「ソースデータベースからのトリガーの同期または移行」をご参照ください。 |
| 移行評価を有効にする | インデックス長、ストアドプロシージャ、依存テーブルなど、ソースとターゲットのデータベース構造が要件を満たしているかを評価します。[スキーマ移行] が選択されている場合にのみ設定可能です。[はい] に設定すると、事前チェックに時間がかかる場合があります。評価結果は事前チェック中に表示されますが、結果には影響しません。 |
| 競合するテーブルの処理モード | [事前チェックとエラー報告]:ソースとターゲットに同名のテーブルがある場合、事前チェックが失敗します。オブジェクト名マッピングを使用して競合を解決してください。[エラーを無視して続行]:このチェックをスキップします。完全移行中、競合するレコードはスキップされます。増分移行中、それらはターゲットレコードを上書きします。注意して使用してください。 |
| イベントを移行するかどうか | ソースデータベースからイベントを移行するかどうかを選択します。はいを選択した場合は、関連する要件を完了してください。詳細については、「イベントの同期または移行」をご参照ください。 |
| 移行先インスタンスのオブジェクト名の大文字/小文字の区別 | 移行先のデータベース名、テーブル名、カラム名の大文字/小文字の区別を制御します。デフォルト:[DTS デフォルトポリシー]宛先インスタンスにおけるオブジェクト名の大文字小文字の指定。「」をご参照ください。 |
| ソースオブジェクト | 移行するオブジェクトを選択し、 |
| 選択したオブジェクト | オブジェクトを右クリックして、名前を変更するか、SQL フィルター条件を設定します。[一括編集] を右上隅でクリックして、複数のオブジェクトを一度に名前変更できます。注意:オブジェクト名マッピングにより、依存オブジェクトが移行に失敗する場合があります。フィルター条件については、「フィルター条件の設定」をご参照ください。 |
[次へ:詳細設定] をクリックします。
ステップ4:詳細設定の構成
| 設定 | 説明 |
|---|---|
| タスクスケジューリング用の専用クラスター | デフォルトでは、DTS は共有クラスターを使用します。より高い安定性を実現するには、専用クラスターをご購入ください。詳細については、「DTS 専用クラスターとは」をご参照ください。 |
| [ソーステーブルで生成されたオンライン DDL ツールの一時テーブルをターゲットデータベースにコピーします。] | オンライン DDL ツールからの一時テーブルを DTS がどのように処理するかを制御します。[はい]:一時テーブルのデータを移行します (データ量が多い場合、遅延が発生する可能性があります)。[いいえ、DMS オンライン DDL に適応]:一時テーブルのデータをスキップし、DMS からの元の DDL のみを移行します (ターゲットテーブルがロックされる可能性があります)。[いいえ、gh-ost に適応]:一時テーブルのデータをスキップし、gh-ost からの元の DDL のみを移行し、正規表現を使用してシャドウテーブルをフィルターします (ターゲットテーブルがロックされる可能性があります)。 重要 pt-online-schema-change などのツールをオンライン DDL 操作に使用しないでください。使用すると DTS タスクが失敗します。 |
| アカウントを移行するかどうか | ソースデータベースからアカウント情報を移行するかどうかを選択します。[はい] の場合は、移行するアカウントを選択し、その権限を確認してください。 |
| 接続失敗時の再試行時間 | 接続失敗後に DTS が再試行する時間。範囲:10~1,440 分。デフォルト:720。30 分以上に設定してください。この時間内に DTS が再接続すると移行が再開されます。それ以外の場合、タスクは失敗します。複数のタスクが同じソースまたはターゲットを共有する場合、最後に設定された値が適用されます。 |
| その他の問題に対する再試行時間 | DDL または DML の失敗後に DTS が再試行する時間。範囲:1~1,440 分。デフォルト:10。10 分より大きい値に設定してください。[接続失敗時の再試行時間] より短くする必要があります。 |
| 完全データ移行のスロットリングを有効にする | 完全移行中の DTS のリソース使用量を制限して、ソースおよび送信先への負荷を軽減します。[ソースデータベースへのクエリ数/秒 (QPS)]、[完全移行の RPS]、および[完全移行時のデータ移行速度 (MB/s)] を設定します。[完全データ移行] が選択されている場合にのみ利用可能です。 |
| 増分データ移行のスロットリングを有効にする | 増分移行中のDTSリソース使用量を制限します。「[増分データ移行のRPS]」および「[増分移行のデータ移行速度 (MB/s)]」を設定します。「[増分データ移行]」が選択されている場合にのみ利用可能です。 |
| 環境タグ | (オプション) 環境識別のためにインスタンスにタグを付けます。 |
| 順方向および逆方向タスクのハートビートテーブルに対する SQL 操作を削除するかどうか | DTS がハートビートテーブルの SQL をソースデータベースに書き込むかどうかを制御します。[はい]:ハートビートテーブルへの書き込みなし (DTS インスタンスで遅延が発生する可能性があります)。[いいえ]:ハートビートテーブルへの書き込みあり (ソースデータベースの物理バックアップやクローニングなどの機能に影響を与える可能性があります)。 |
| ETL の設定 | ETL (抽出・変換・書き出し) 機能を有効化します。[はい]: コードエディタでデータ処理文を入力します。詳細については、「データ移行またはデータ同期タスクで ETL を設定する」をご参照ください。[いいえ]: ETL は無効化されます。概要については、「ETL とは? |
| モニタリングとアラート | タスクが失敗した場合や移行遅延がしきい値を超えた場合に通知を送信します。[はい]DTS タスク作成時のモニタリングとアラートの設定:アラートのしきい値と通知設定を構成します。「」をご参照ください。[いいえ]:アラート機能は無効になります。 |
「[次へ: データ検証]」をクリックして、データ検証を設定します。詳細については、「データ検証タスクの設定」をご参照ください。
ステップ5:事前チェックの実行
[次へ:タスク設定を保存して事前チェック] をクリックします。
このタスクをプログラムで設定するための API パラメーターをプレビューするには、「次へ: タスク設定の保存と事前チェック」にマウスを上に置き、[OpenAPI パラメーターのプレビュー] をクリックします。
DTS は移行開始前に事前チェックを実行します。タスクは事前チェックに合格した後にのみ続行できます。
確認項目が失敗した場合は、その横にある [詳細の表示] をクリックし、問題を解決してから再度事前チェックを実行します。
項目に対してアラートがトリガーされた場合:
アラートを無視できない場合は、[詳細の表示] をクリックして問題を修正し、再度事前チェックを実行します。
アラートを無視できる場合は、[アラート詳細の確認] をクリックし、ダイアログボックスで [無視] をクリックし、[OK] で確定してから [再度事前チェック] をクリックします。
アラート項目を無視すると、データの不整合が発生する可能性があります。リスクが許容できると確信できる場合にのみ続行してください。
ステップ6:移行インスタンスの購入と開始
成功率が 100% に達するまで待ってから、[次へ:インスタンスの購入] をクリックします。
[インスタンスの購入] ページで、以下を設定します:
セクション パラメーター 説明 新しいインスタンスクラス リソースグループ 移行インスタンスのリソースグループ。デフォルト:デフォルトリソースグループResource Management とは インスタンスクラス 移行速度を制御します。ワークロードに基づいて選択します。詳細については、「データ移行インスタンスのインスタンスクラス」をご参照ください。 [Data Transmission Service (従量課金) 利用規約] チェックボックスを選択します。
[購入して開始] をクリックし、確認ダイアログで [OK] をクリックします。
移行の確認
データ移行ページで、タスクの進捗をモニターします。