すべてのプロダクト
Search
ドキュメントセンター

Data Transmission Service:ApsaraDB RDS for MariaDBインスタンス間のデータ移行

最終更新日:Oct 31, 2024

このトピックでは、data Transmission Service (DTS) を使用してApsaraDB RDS for MariaDBインスタンス間でデータを移行する方法について説明します。

前提条件

  • 移行先ApsaraDB RDS for MariaDBインスタンスが作成されました。 詳細については、「ApsaraDB RDS For MariaDBインスタンスの作成」をご参照ください。

  • 移行先ApsaraDB RDS for MariaDBインスタンスの使用可能なストレージ容量が、移行元ApsaraDB RDS for MariaDBインスタンスのデータの合計サイズよりも大きいこと。

制限事項

説明
  • スキーマの移行中に、DTSは外部キーをソースデータベースからターゲットデータベースに移行します。

  • 完全データ移行および増分データ移行中、DTSはセッションレベルで外部キーに対する制約チェックおよびカスケード操作を一時的に無効にします。 データ移行中にソースデータベースに対してカスケード操作と削除操作を実行すると、データの不整合が発生する可能性があります。

カテゴリ

説明

ソースデータベースの制限

  • ソースデータベースが属するサーバーには、十分なアウトバウンド帯域幅が必要です。 そうしないと、データ移行速度が低下します。

  • 移行するテーブルには、PRIMARY KEYまたはUNIQUE制約が必要であり、すべてのフィールドが一意である必要があります。 そうでない場合、宛先データベースは重複するデータレコードを含み得る。

  • 移行するオブジェクトとしてテーブルを選択し、テーブルや列の名前の変更など、移行先データベースのテーブルを編集する場合は、1つのデータ移行タスクで最大1,000のテーブルを移行できます。 タスクを実行して1,000を超えるテーブルを移行すると、リクエストエラーが発生します。 この場合、複数のタスクを構成してテーブルをバッチで移行するか、タスクを構成してデータベース全体を移行することをお勧めします。

  • 増分データを移行する場合は、次の要件が満たされていることを確認してください。

    • バイナリログ機能が有効になっています。 binlog_formatパラメーターの値はrowに設定されます。 binlog_row_imageパラメーターの値がfullに設定されています。 それ以外の場合、事前チェック中にエラーメッセージが返され、データ移行タスクを開始できません。

    • 増分データ移行のみを実行する場合、ソースデータベースのバイナリログを24時間以上保存する必要があります。 完全データ移行と増分データ移行の両方を実行する場合、ソースデータベースのバイナリログを少なくとも7日間保存する必要があります。 そうしないと、DTSはバイナリログの取得に失敗し、タスクが失敗したり、データの不整合やデータの損失が発生する可能性があります。 完全なデータ移行が完了したら、保持期間を24時間以上に設定できます。 上記の要件に基づいて、バイナリログの保持期間を設定してください。 それ以外の場合、DTSのサービスレベル契約 (SLA) はサービスの信頼性またはパフォーマンスを保証しません。

  • ソースデータベースで実行する操作の制限:

    • スキーマ移行中および完全データ移行中は、DDL操作を実行してデータベースまたはテーブルのスキーマを変更しないでください。 それ以外の場合、データ移行タスクは失敗します。

    • フルデータ移行のみを実行する場合は、データ移行中にソースデータベースにデータを書き込まないでください。 そうしないと、ソースデータベースとターゲットデータベースの間でデータの不一致が発生する可能性があります。 データの一貫性を確保するために、移行タイプとしてスキーマ移行、フルデータ移行、および増分データ移行を選択することを推奨します。

その他の制限

  • データを移行する前に、移行元データベースと移行先データベースのパフォーマンスに対するデータ移行の影響を評価します。 オフピーク時にデータを移行することを推奨します。 完全データ移行中、DTSはソースデータベースとターゲットデータベースの読み取りおよび書き込みリソースを使用します。 これにより、データベースサーバーの負荷が増加する可能性があります。

  • 完全データ移行中、同時INSERT操作により、ターゲットデータベースのテーブルが断片化されます。 完全データ移行が完了すると、移行先データベースの使用表領域のサイズが移行元データベースのサイズよりも大きくなります。

  • FLOATまたはDOUBLEデータ型の列の精度設定がビジネス要件を満たしていることを確認する必要があります。 DTSはROUND(COLUMN,PRECISION) 関数を使用して、FLOATまたはDOUBLEデータ型の列から値を取得します。 精度を指定しない場合、DTSはFLOATデータ型の列の精度を38桁に設定し、DOUBLEデータ型の列の精度を308桁に設定します。

  • DTSは、過去7日以内に失敗したデータ移行タスクを再開しようとします。 ワークロードをターゲットデータベースに切り替える前に、失敗したタスクを停止またはリリースする必要があります。 REVOKEステートメントを実行して、DTSがターゲットデータベースにアクセスするために使用するアカウントの書き込み権限を取り消すこともできます。 それ以外の場合、失敗したタスクが再開された後、ソースデータベースのデータがターゲットデータベースのデータを上書きします。

  • ターゲットデータベースでDDL文の実行に失敗した場合、DTSタスクは引き続き実行されます。 タスクログで実行に失敗したDDLステートメントを表示できます。 タスクログの表示方法の詳細については、「タスクログの表示」をご参照ください。

特別なケース

宛先がApsaraDB RDS for MariaDBインスタンスの場合、次の項目に注意する必要があります。

DTSは、ApsaraDB RDS for MariaDBインスタンスにデータベースを自動的に作成します。 ただし、ソースデータベースの名前が無効な場合は、データ移行タスクを設定する前に、ApsaraDB RDS for MariaDBインスタンスにデータベースを手動で作成する必要があります。 詳細については、「ApsaraDB RDS For MariaDBインスタンスでのデータベースとアカウントの作成」をご参照ください。

課金

移行タイプ

タスク設定料金

フルデータ移行

無料です。

増分データ移行

有料。 詳細については、「課金の概要」をご参照ください。

移行タイプ

  • スキーマ移行

    DTSは、オブジェクトのスキーマをソースデータベースからターゲットデータベースに移行します。

  • 完全なデータ移行

    DTSは、オブジェクトの既存のデータをソースデータベースからターゲットデータベースに移行します。

  • 増分データ移行

    完全データ移行が完了すると、DTSは増分データをソースデータベースからターゲットデータベースに移行します。 増分データ移行により、データ移行中に自己管理型アプリケーションのサービスを中断することなく、データをスムーズに移行できます。

増分移行可能なSQL操作

操作タイプ

SQL文

DML

挿入、更新、および削除

DDL

  • ALTER TABLEとALTER VIEW

  • CREATE FUNCTION、CREATE INDEX、CREATE PROCEDURE、CREATE TABLE、およびCREATE VIEW

  • ドロップインデックスとドロップテーブル

  • RENAMEテーブル

    重要

    RENAME TABLE操作は、ソースデータベースと宛先データベースの間にデータの不一致を引き起こす可能性があります。 たとえば、移行するオブジェクトとしてテーブルを選択し、データ移行中にテーブルの名前を変更した場合、このテーブルのデータは移行先データベースに移行されません。 この状況を回避するには、データ移行タスクを設定するときに、このテーブルが属するデータベースを移行するオブジェクトとして選択します。 RENAME table操作の前後にテーブルが属するデータベースが、移行するオブジェクトに追加されていることを確認してください。

  • TRUNCATE TABLE

データベースアカウントに必要な権限

データベース

スキーマ移行

完全なデータ移行

増分データ移行

ソースApsaraDB RDS for MariaDBインスタンス

SELECT 権限

SELECT 権限

読み取りおよび書き込み権限

宛先ApsaraDB RDS for MariaDBインスタンス

読み取りおよび書き込み権限

読み取りおよび書き込み権限

読み取りおよび書き込み権限

データベースアカウントを作成し、ApsaraDB RDS For MariaDBインスタンスのデータベースアカウントに権限を付与する方法については、「アカウントの作成」および「アカウント権限の変更またはリセット」をご参照ください。

手順

  1. [データ移行タスク] ページに移動します。

    1. データ管理 (DMS) コンソール にログインします。

    2. 上部のナビゲーションバーで、[DTS] をクリックします。

    3. 左側のナビゲーションウィンドウで、[DTS (DTS)] > [データ移行] を選択します。

    説明
  2. [データ移行タスク] の横にあるドロップダウンリストから、データ移行インスタンスが存在するリージョンを選択します。

    説明

    新しいDTSコンソールを使用する場合は、左上隅にあるデータ移行インスタンスが存在するリージョンを選択します。

  3. [タスクの作成] をクリックします。 タスクの作成ウィザードで、ソースデータベースとターゲットデータベースを設定します。

    セクション

    パラメーター

    説明

    N/A

    タスク名

    タスクの名前。 DTSはタスクに名前を自動的に割り当てます。 タスクを簡単に識別できるように、わかりやすい名前を指定することをお勧めします。 一意のタスク名を指定する必要はありません。

    ソースデータベース

    既存のDMSデータベースインスタンスの選択

    使用するデータベースインスタンス。 ビジネス要件に基づいて、既存のインスタンスを使用するかどうかを選択できます。

    • 既存のインスタンスを使用する場合、DTSはインスタンスのパラメーター設定を自動的に適用します。 データベースのパラメーターを再度設定する必要はありません。

    • 既存のインスタンスを使用しない場合は、データベースのパラメーターを設定する必要があります。

    データベースタイプ

    移行元ディスクのタイプを設定します。 [MariaDB] を選択します。

    アクセス方法

    ソースデータベースのアクセス方法。 [Alibaba Cloudインスタンス] を選択します。

    インスタンスリージョン

    ソースApsaraDB RDS for MariaDBインスタンスが存在するリージョン。

    Alibaba Cloudアカウント全体でのデータの複製

    Alibaba Cloudアカウント間でデータを移行するかどうかを指定します。 この例では、[いいえ] が選択されています。

    インスタンスID

    ソースApsaraDB RDS for MariaDBインスタンスのID。

    データベースアカウント

    ソースApsaraDB RDS for MariaDBインスタンスのデータベースアカウント。 必要なアカウントの権限については、このトピックの「データベースアカウントに必要な権限」をご参照ください。

    データベースパスワード

    データベースアカウントのパスワードを設定します。

    暗号化

    ソースデータベースへの接続を暗号化するかどうかを指定します。 デフォルトでは、ApsaraDB RDS for MariaDBインスタンスで非暗号化が選択されています。

    宛先データベース

    既存のDMSデータベースインスタンスの選択

    使用するデータベースインスタンス。 ビジネス要件に基づいて、既存のインスタンスを選択するかどうかを選択できます。

    • 既存のインスタンスを選択すると、DTSはデータベースのパラメーターを自動的に入力します。

    • 既存のインスタンスを選択しない場合は、データベースのパラメーターを手動で設定する必要があります。

    データベースタイプ

    ターゲットデータベースのタイプ。 [MariaDB] を選択します。

    アクセス方法

    ターゲットデータベースのアクセス方法。 [Alibaba Cloudインスタンス] を選択します。

    インスタンスリージョン

    移行先ApsaraDB RDS for MariaDBインスタンスが存在するリージョン。

    RDSインスタンスID

    移行先ApsaraDB RDS for MariaDBインスタンスのID。

    データベースアカウント

    移行先ApsaraDB RDS for MariaDBインスタンスのデータベースアカウント。

    データベースパスワード

    データベースアカウントのパスワードを設定します。

    暗号化

    接続先データベースへの接続を暗号化するかどうかを指定します。 デフォルトでは、ApsaraDB RDS for MariaDBインスタンスで非暗号化が選択されています。

  4. ページの下部で、[接続のテストと続行] をクリックします。

    、ソースまたはターゲットデータベースがAlibaba Cloudデータベースインスタンス (ApsaraDB RDS for MySQLApsaraDB for MongoDBインスタンスなど) の場合、DTSは自動的にDTSサーバーのCIDRブロックをインスタンスのIPアドレスホワイトリストに追加します。 ソースデータベースまたはターゲットデータベースがElastic Compute Service (ECS) インスタンスでホストされている自己管理データベースの場合、DTSサーバーのCIDRブロックがECSインスタンスのセキュリティグループルールに自動的に追加されます。ECSインスタンスがデータベースにアクセスできることを確認する必要があります。 自己管理データベースが複数のECSインスタンスでホストされている場合、DTSサーバーのCIDRブロックを各ECSインスタンスのセキュリティグループルールに手動で追加する必要があります。 ソースデータベースまたはターゲットデータベースが、データセンターにデプロイされているか、サードパーティのクラウドサービスプロバイダーによって提供される自己管理データベースである場合、DTSサーバーのCIDRブロックをデータベースのIPアドレスホワイトリストに手動で追加して、DTSがデータベースにアクセスできるようにする必要があります。 詳細については、「DTSサーバーのCIDRブロックをオンプレミスデータベースのセキュリティ設定に追加する」トピックの「DTSサーバーのCIDRブロック」をご参照ください。

    警告

    DTSサーバーのパブリックCIDRブロックが、データベースインスタンスのIPアドレスホワイトリストまたはECSインスタンスのセキュリティグループルールに自動的または手動で追加されると、セキュリティリスクが発生する可能性があります。 したがって、DTSを使用してデータを移行する前に、潜在的なリスクを理解して認識し、アカウントとパスワードのセキュリティの強化、公開されるポートの制限、API呼び出しの認証、IPアドレスホワイトリストまたはECSセキュリティグループルールの定期的なチェック、および不正なCIDRブロックの禁止、Express Connectを使用したデータベースのDTSへの接続、VPNゲートウェイ、またはSmart Access Gateway。

  5. 移行するオブジェクトと詳細設定を設定します。

    パラメーター

    説明

    移行タイプ

    • フルデータ移行のみを実行するには、[スキーマ移行][フルデータ移行] を選択します。

    • データ移行中のサービスの継続性を確保するには、[スキーマ移行][フルデータ移行] 、および [増分データ移行] を選択します。

    説明

    増分データ移行を選択しない場合、データ移行中にソースデータベースにデータを書き込まないことを推奨します。 これにより、ソースデータベースとターゲットデータベース間のデータの整合性が確保されます。

    移行元データベースのトリガーを移行する方法

    ソースデータベースからトリガーを移行するために使用されるメソッド。 ビジネス要件に基づいて移行方法を選択できます。 移行するトリガーがない場合は、このパラメーターを設定する必要はありません。 詳細については、「ソースデータベースからのトリガーの同期または移行」をご参照ください。

    説明

    このパラメーターは、移行タイプ パラメーターで スキーマ移行 が選択されている場合にのみ表示されます。

    競合テーブルの処理モード

    • 事前チェックエラーとレポートエラー: ターゲットデータベースに、ソースデータベースのテーブルと同じ名前のテーブルが含まれているかどうかを確認します。 ソースデータベースとターゲットデータベースに同じテーブル名のテーブルが含まれていない場合は、事前チェックに合格します。 それ以外の場合、事前チェック中にエラーが返され、データ移行タスクを開始できません。

      説明

      ソースデータベースとターゲットデータベースに同じテーブル名が含まれていて、ターゲットデータベース内のテーブルを削除または名前変更できない場合は、オブジェクト名マッピング機能を使用して、ターゲットデータベースに移行されるテーブルの名前を変更できます。 詳細については、「マップオブジェクト名」をご参照ください。

    • エラーを無視して続行: ソースデータベースとターゲットデータベースの同じテーブル名の事前チェックをスキップします。

      警告

      [エラーを無視して続行] を選択すると、データの不整合が発生し、ビジネスが潜在的なリスクにさらされる可能性があります。

      • ソースデータベースとターゲットデータベースのスキーマが同じである場合、DTSは、ターゲットデータベースのデータレコードと同じ主キー値を持つデータレコードを移行しません。

      • ソースデータベースとターゲットデータベースのスキーマが異なる場合、特定の列のみが移行されるか、データ移行タスクが失敗します。

    ソースオブジェクト

    [ソースオブジェクト] セクションから1つ以上のオブジェクトを選択し、Rightwards arrowアイコンをクリックして、オブジェクトを [選択済みオブジェクト] セクションに移動します。

    [選択済みオブジェクト]

    • 移行先インスタンスに移行するオブジェクトの名前を変更するには、[選択済みオブジェクト] セクションでオブジェクトを右クリックします。 詳細については、「単一オブジェクトの名前のマッピング」をご参照ください。

    • 一度に複数のオブジェクトの名前を変更するには、[選択済みオブジェクト] セクションの右上隅にある [一括編集] をクリックします。 詳細については、「一度に複数のオブジェクト名をマップする」をご参照ください。

    説明
    • オブジェクト名マッピング機能を使用してオブジェクトの名前を変更すると、そのオブジェクトに依存する他のオブジェクトの移行に失敗する可能性があります。

    • データをフィルタリングするWHERE条件を指定するには、[選択済みオブジェクト] セクションでオブジェクトを右クリックします。 表示されるダイアログボックスで、条件を指定します。 詳細については、「フィルター条件の設定」をご参照ください。

    • 特定のデータベースまたはテーブルで実行されたSQL操作を選択するには、[選択済みオブジェクト] セクションでオブジェクトを右クリックします。 表示されるダイアログボックスで、移行するSQL操作を選択します。 詳細については、このトピックの「SQL操作を段階的に移行できる」をご参照ください。

  6. [次へ: 詳細設定] をクリックして詳細設定を構成します。

    パラメーター

    説明

    タスクのスケジュールに使用する専用クラスターの選択

    既定では、専用クラスターを指定しない場合、DTSは共有クラスターへのデータ移行タスクをスケジュールします。 データ移行タスクを実行するために必要な仕様の専用クラスターを購入して指定することもできます。 詳細については、「DTS専用クラスターの概要」をご参照ください。

    Set Alerts

    データ移行タスクのアラートを設定するかどうかを指定します。 タスクが失敗するか、移行の待ち時間が指定されたしきい値を超えると、アラート送信先は通知を受け取ります。 有効な値:

    • No: アラートを設定しません。

    • Yes: アラートを設定します。 [はい] を選択した場合、アラートしきい値とアラート連絡先も指定する必要があります。 詳細については、「モニタリングとアラートの設定」をご参照ください。

    失敗した接続の再試行時間

    失敗した接続のリトライ時間範囲。 データ移行タスクの開始後にソースデータベースまたはターゲットデータベースの接続に失敗した場合、DTSはその時間範囲内ですぐに接続を再試行します。 有効な値: 10 ~ 1440 単位: 分。 デフォルト値: 720 パラメーターを30より大きい値に設定することを推奨します。 DTSが指定された時間範囲内にソースデータベースとターゲットデータベースに再接続すると、DTSはデータ移行タスクを再開します。 それ以外の場合、データ移行タスクは失敗します。

    説明
    • ソースまたはターゲットデータベースが同じである複数のデータ移行タスクに対して異なるリトライ時間範囲を設定した場合、設定された最短のリトライ時間範囲が優先されます。

    • DTSが接続を再試行すると、DTSインスタンスに対して課金されます。 業務要件に基づいて再試行時間範囲を指定することを推奨します。 ソースインスタンスとターゲットインスタンスがリリースされた後、できるだけ早くDTSインスタンスをリリースすることもできます。

    移行元データベースと移行先データベースで他の問題が発生した場合の、再試行までの待機時間です。

    その他の問題の再試行時間範囲。 たとえば、データ移行タスクの開始後にDDLまたはDML操作の実行に失敗した場合、DTSは再試行時間範囲内ですぐに操作を再試行します。 有効な値: 1 ~ 1440 単位: 分。 デフォルト値は 10 です。 パラメーターを10より大きい値に設定することを推奨します。 指定された再試行時間内に失敗した操作が正常に実行された場合、DTSはデータ移行タスクを再開します。 それ以外の場合、データ移行タスクは失敗します。

    重要

    ソースデータベースとターゲットデータベースで他の問題が発生した場合の再試行までの待機時間パラメーターの値は、[失敗した接続の再試行時間] パラメーターの値よりも小さくする必要があります。

    完全移行率を制限するかどうか

    フルデータ移行のスロットリングを有効にするかどうかを指定します。 完全データ移行中、DTSはソースデータベースとターゲットデータベースの読み取りおよび書き込みリソースを使用します。 これは、データベースサーバの負荷を増加させる可能性がある。 ビジネス要件に基づいて、フルデータ移行のスロットリングを有効にできます。 スロットリングを設定するには、1 秒あたりのソースデータベースのクエリ率 QPS1 秒あたりの完全移行の行数 RPS1 秒あたりの完全移行データ量 (MB) BPS パラメーターを設定する必要があります。 これにより、移行先データベースサーバーの負荷が軽減されます。

    説明

    このパラメーターは、移行タイプ として 完全データ移行 が選択されている場合にのみ表示されます。

    増分同期率を制限するかどうか

    ターゲットデータベースへの負荷を軽減するために、増分データ同期タスク用に増分データ移行の RPSおよび増分データ移行の BPSパラメーターを設定できます。

    環境タグ

    DTSインスタンスを識別するために使用される環境タグ。 ビジネス要件に基づいて環境タグを選択できます。 この例では、このパラメーターを設定する必要はありません。

    ETLの設定

    抽出、変換、および読み込み (ETL) 機能を設定するかどうかを指定します。 詳細については、「ETLとは」をご参照ください。. 有効な値:

  7. ページの下部にある [次へ: タスク設定と事前チェック] をクリックします。

    ポインタを 次:タスク設定の保存と事前チェック に移動し、[OpenAPIパラメーターのプレビュー] をクリックして、関連するAPI操作を呼び出してDTSタスクを設定するときに指定するパラメーターを表示できます。

    説明
    • データ移行タスクを開始する前に、DTSは事前チェックを実行します。 データ移行タスクは、タスクが事前チェックに合格した後にのみ開始できます。

    • タスクが事前チェックに合格しなかった場合は、失敗した各項目の横にある [詳細の表示] をクリックします。 エラーメッセージに基づいて問題をトラブルシューティングした後、事前チェックを再度実行できます。

    • 事前チェック中にアイテムに対してアラートがトリガーされた場合:

      • アラートアイテムを無視できない場合は、失敗したアイテムの横にある [詳細の表示] をクリックして問題のトラブルシューティングを行います。 次に、もう一度プレチェックを実行します。

      • アラート項目を無視できる場合は、[アラート詳細の確認] をクリックします。 [詳細の表示] ダイアログボックスで、[無視] をクリックします。 表示されたメッセージボックスで、[OK] をクリックします。 次に、[再度事前チェック] をクリックして、事前チェックを再度実行します。 アラート項目を無視すると、データの不整合が発生し、ビジネスが潜在的なリスクにさらされる可能性があります。

  8. 成功率100% になるまで待ちます。 次に、[次へ: インスタンスの購入] をクリックします。

  9. [インスタンスの購入] ページで、データ移行インスタンスのインスタンスクラスパラメーターを設定します。 次の表にパラメーターを示します。

    セクション

    パラメーター

    説明

    新しいインスタンスクラス

    リソースグループ

    データ移行インスタンスが属するリソースグループ。 デフォルト値: Default resource group 詳細については、「リソース管理とは 」をご参照ください。

    インスタンスクラス

    DTSは、移行速度が異なるインスタンスクラスを提供します。 ビジネスシナリオに基づいてインスタンスクラスを選択できます。 詳細については、「データ移行インスタンスの仕様」をご参照ください。

  10. チェックボックスをオンにして、Data Transmission Service (Pay-as-you-go) Service Termsを読み、同意します。

  11. [購入と開始] をクリックして、データ移行タスクを開始します。 タスクリストでタスクの進行状況を確認できます。