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

Data Transmission Service:ApsaraDB RDS for SQL Server インスタンスから AnalyticDB for MySQL V3.0 クラスタへのデータの移行

最終更新日:May 08, 2025

このトピックでは、Data Transmission Service (DTS) を使用して、ApsaraDB RDS for SQL Server インスタンスまたは自己管理 SQL Server データベースから AnalyticDB for MySQL クラスタ にデータを移行する方法について説明します。これにより、簡単にデータを転送し、リアルタイムでデータを分析できます。

サポートされているソースデータベース

以下の種類の SQL Server データベースから AnalyticDB for MySQL クラスタ にデータを移行できます。このトピックでは、RDS インスタンスをソースデータベースとして使用して、データ移行タスクを設定する方法について説明します。この手順に従って、他の種類の SQL Server データベースのデータ移行タスクを設定できます。

  • RDS インスタンス

  • 自己管理データベース:

    • パブリック IP アドレスを持つ自己管理データベース
    • Elastic Compute Service (ECS) でホストされている自己管理データベース
    • Express Connect、VPN Gateway、または Smart Access Gateway 経由で接続されている自己管理データベース
    • データベースゲートウェイ経由で接続されている自己管理データベース

前提条件

  • 新しい DTS コンソールが使用されます。このシナリオのデータ移行タスクは、新しい DTS コンソールでのみ設定できます。

  • ソース RDS インスタンスが作成されています。サポートされているデータベースエンジンのバージョンについては、「データ移行シナリオの概要」をご参照ください。RDS インスタンスの作成方法については、「ApsaraDB RDS for SQL Server インスタンスの作成」をご参照ください。

    重要

    RDS インスタンスで SQL Server 2008 または SQL Server 2008 R2 が実行されている場合、増分データ移行はサポートされていません。

  • AnalyticDB for MySQL クラスタが作成されています。詳細については、「クラスタの作成」をご参照ください。

  • AnalyticDB for MySQL クラスタのストレージ容量は、RDS インスタンスのストレージ容量よりも大きくなっています。

  • RDS インスタンスが以下のいずれかの条件を満たしている場合は、移行タスクを複数のサブタスクに分割することをお勧めします。

    • ソースインスタンスに 10 個を超えるデータベースが含まれている。

    • ソースインスタンスの単一データベースが 1 時間未満の間隔でログをバックアップしている。

    • ソースインスタンスの単一データベースが 1 時間ごとに 100 個を超える DDL 文を実行している。

    • ソースインスタンスの単一データベースのログ書き込み速度が 20 MB/s である。

    • ソース ApsaraDB RDS for SQL Server インスタンスの 1,000 個を超えるテーブルで変更データキャプチャ (CDC) 機能を有効にする必要がある。

使用上の注意

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

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

制限タイプ

説明

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

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

  • 移行するテーブルには、PRIMARY KEY または UNIQUE 制約があり、すべてのフィールドが一意である必要があります。そうでない場合、ターゲットデータベースに重複したデータレコードが含まれる可能性があります。

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

  • 1 つのデータ移行タスクを実行して、最大 10 個のデータベースを移行できます。 10 個を超えるデータベースを移行する場合は、複数のタスクを設定してデータベースを移行することをお勧めします。そうでない場合、データ移行タスクのパフォーマンスと安定性が損なわれる可能性があります。

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

    • データロギング機能が有効になっている必要があります。バックアップモードは「完全」に設定する必要があり、完全物理バックアップを実行する必要があります。

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

  • ソースデータベースから移行するテーブルで変更データキャプチャ (CDC) 機能を有効にする必要がある場合は、以下の条件を満たす必要があります。そうでない場合、事前チェックは失敗します。

    • sys.sysservers ビューの srvname フィールドの値は、SERVERPROPERTY 関数の戻り値と同じです。

    • ソースデータベースが自己管理 SQL Server データベースの場合、データベース所有者は sa ユーザーである必要があります。ソースデータベースが ApsaraDB RDS for SQL Server データベースの場合、データベース所有者は sqlsa ユーザーである必要があります。

    • ソースデータベースが Enterprise エディションの場合、SQL Server 2008 以降を使用する必要があります。

    • ソースデータベースが Standard エディションの場合、SQL Server 2016 SP1 以降を使用する必要があります。

    • ソースデータベースが Standard または Enterprise エディションで、バージョンが SQL Server 2017 の場合は、バージョンを更新することをお勧めします。

  • DTS は fn_log 関数を使用してソースデータベースのログを取得します。ただし、この関数にはパフォーマンスボトルネックがあります。タスクが完了する前にソースデータベースのログをクリアしないことをお勧めします。そうでない場合、タスクが失敗する可能性があります。

  • ソースデータベースでの操作の制限:

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

    • 完全データ移行のみを実行する場合は、データ移行中にソースデータベースにデータを書き込まないでください。そうでない場合、ソースデータベースとターゲットデータベース間でデータの不整合が発生します。データの整合性を確保するために、「スキーマ移行」、「完全データ移行」、および「増分データ移行」を移行タイプとして選択することをお勧めします。

  • ソースデータベースが読み取り専用インスタンスの場合、DDL 操作を移行することはできません。

  • ソースデータベースが Azure SQL Database の場合、データ移行タスクで移行できるデータベースは 1 つだけです。

  • ソースデータベースが ApsaraDB RDS for SQL Server データベースであり、データ移行タスクで増分データが移行される場合は、透過的データ暗号化 (TDE) 機能が無効になっていることを確認してください。これにより、インスタンスが想定どおりに実行されるようになります。詳細については、「TDE の設定」をご参照ください。

  • ハイブリッドログベースの解析モードでは、10 分以内にソースデータベースに対して列を追加または削除する操作を複数回実行することはできません。たとえば、10 分以内に次の SQL 文を実行すると、タスクでエラーが報告されます。

    ALTER TABLE test_table DROP COLUMN Flag;
    ALTER TABLE test_table ADD Remark nvarchar(50) not null default('');
  • ソースデータベースが SQL Server Web エディションを実行する ApsaraDB RDS for SQL Server インスタンスである場合、タスクを設定する際に、SQL Server 増分同期モード パラメータを ソースデータベースのログに基づく増分同期 (ヒープテーブル非対応) に設定する必要があります。

  • 完全データ移行中は、ソースデータベースの READ_COMMITTED_SNAPSHOT のトランザクション処理モードパラメータを有効にすることをお勧めします。そうでない場合、共有ロックが原因でデータ書き込みに影響したり、データの不整合が発生したり、インスタンスが実行に失敗したりする可能性があります。このような状況で発生する問題は、DTS のサービスレベル契約 (SLA) の対象外です。

その他の制限

  • DTS は、CURSOR、ROWVERSION、SQL_VARIANT、HIERARCHYID、POLYGON、GEOMETRY、GEOGRAPHY、および CREATE TYPE コマンドを実行することによって作成されたカスタムデータ型を移行しません。

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

  • ターゲットデータベースでカスタム プライマリキーを指定するか、[データベース、テーブル、およびカラムの構成][プライマリキーカラム] を構成する必要があります。そうしないと、データの移行に失敗する可能性があります。

  • SQL Server 増分同期モード パラメーターを ソースデータベースのログに基づく増分同期 (ヒープテーブル非対応) に設定した場合、オブジェクト設定 ステップで、移行するテーブルにはプライマリキー列を含むクラスター化インデックスが必要です。 移行するテーブルは、ヒープテーブル、プライマリキーのないテーブル、圧縮テーブル、または計算列を含むテーブルにすることはできません。 ハイブリッドログベースの解析モードを使用する場合は、上記の制限を無視してください。

  • SQL Server 増分同期モード パラメーターを、クラスター化テーブルはログ解析で増分同期し、ヒープテーブルの場合は CDC で増分同期します (ハイブリッド式ログ解析) に設定した場合、オブジェクト設定 ステップでは、以下の制限が適用されます。

    • DTS は CDC コンポーネントを使用して増分データを移行します。ソースデータベースの CDC ジョブが想定どおりに実行されていることを確認してください。そうでない場合、DTS タスクは失敗します。

    • CDC コンポーネントは、デフォルトで増分データを 3 日間保存できます。 exec console.sys.sp_cdc_change_job @job_type = 'cleanup', @retention= <time>; コマンドを実行することで、保存期間を調整できます。

      説明
      • <time> は保存時間を示します。単位: 分。

      • SQL Server データベースの増分データの 1 日あたりの平均数が 1,000 万を超える場合は、<time> パラメータを 1,440 に設定することをお勧めします。

    • CDC が有効になっているテーブルが 1,000 個以下のデータ移行タスクを指定することをお勧めします。そうでない場合、タスクが遅延したり、不安定になったりする可能性があります。

    • DTS の増分データ移行タスクのプレモジュールは、ソースデータベースで CDC を有効にします。このプロセスでは、SQL Server データベースの制限により、ソースデータベースで数秒間続くロックされたテーブルが発生します。

  • オブジェクト設定 ステップで、SQL Server 増分同期モード パラメータを 増分同期のための CDC インスタンスのポーリングとクエリ に設定した場合、次の制限が適用されます。

    • DTS インスタンスで使用されるソースデータベースアカウントには、CDC 機能を有効にする権限が必要です。データベースレベルの CDC を有効にするには、sysadmin ロールが割り当てられたアカウントを使用する必要があります。テーブルレベルの CDC を有効にするには、特権アカウントを使用する必要があります。

      説明
      • Microsoft Azure SQL Database のサーバー管理者アカウントには、必要な権限があります。 vCore モデルに基づいて Azure SQL Database で購入されたすべてのデータベースで CDC を有効にすることができます。データベーストランザクションユニット (DTU) モデルに基づいて Azure SQL Database で購入されたデータベースの場合、データベースのサービス階層が S3 以上の場合にのみ CDC を有効にすることができます。

      • Amazon RDS for SQL Server インスタンスの特権アカウントには、必要な権限があります。データベースレベルでストアドプロシージャに対して CDC を有効にすることができます。

      • クラスター化列ストアインデックスに対して CDC を有効にすることはできません。

      • DTS の増分データ移行タスクのプレモジュールは、ソースデータベースで CDC を有効にします。このプロセスでは、SQL Server データベースの制限により、ソースデータベースで数秒間続くロックされたテーブルが発生します。

    • DTS は、ソースデータベースの各テーブルの CDC インスタンスに対してラウンドロビンクエリを実行することで増分データを取得します。したがって、ソースデータベースから移行されるテーブルの数は 1,000 を超えることはできません。そうでない場合、データ移行タスクが遅延したり、不安定になったりする可能性があります。

    • CDC コンポーネントは、デフォルトで増分データを 3 日間保存できます。 exec console.sys.sp_cdc_change_job @job_type = 'cleanup', @retention= <time>; コマンドを実行することで、保存期間を調整できます。

      説明
      • <time> は保存時間を示します。単位: 分。

      • SQL Server データベースの増分データの 1 日あたりの平均数が 1,000 万を超える場合は、<time> パラメータを 1,440 に設定することをお勧めします。

    • 1 分以内に列を追加または削除する DDL 文を 2 回以上実行することはできません。そうでない場合、データ移行タスクが失敗する可能性があります。

    • データ移行中は、ソースデータベースの CDC インスタンスを変更することはできません。そうでない場合、データ移行タスクが失敗したり、データが失われたりする可能性があります。

  • ソースデータベースのログに基づく増分同期モードでは、DTS はソースデータベースに dts_cdc_sync_ddl という名前のトリガー、dts_sync_progress という名前のハートビートテーブル、および dts_cdc_ddl_history という名前の DDL 履歴テーブルを作成して、データ移行のレイテンシが正確であることを確認します。ハイブリッドログベースの解析増分同期モードでは、DTS は dts_cdc_sync_ddl という名前のトリガー、dts_sync_progress という名前のハートビートテーブル、および dts_cdc_ddl_history という名前の DDL 履歴テーブルを作成し、ソースデータベースと特定のテーブルに対して CDC を有効にします。ソースデータベースで CDC が有効になっているテーブルの 1 秒あたりの最大レコード数を 1,000 に設定することをお勧めします。

  • AnalyticDB for MySQL クラスタの制限により、AnalyticDB for MySQL クラスタ内のノードのディスク容量の使用率が 80% を超えると、ターゲットデータベースへのデータ書き込みのパフォーマンスが低下し、DTS タスクが遅延します。 AnalyticDB for MySQL クラスタ内のノードのディスク容量の使用率が 90% を超えると、ターゲットデータベースにデータを書き込むことができなくなり、エラーメッセージが返されます。移行するオブジェクトに基づいて必要なディスク容量を見積もることをお勧めします。ターゲットクラスタに十分なストレージ容量があることを確認してください。

  • DTS タスクの実行中にターゲット AnalyticDB for MySQL V3.0 クラスタがバックアップされている場合、DTS タスクは失敗します。

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

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

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

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

  • データ移行タスクに増分データ移行が含まれている場合、DTS ではインデックス再作成操作を実行できません。インデックス再作成操作を実行すると、データ移行タスクが失敗し、データが失われる可能性があります。

    説明

    DTS は、CDC が有効になっているテーブルのプライマリキーに関連する DDL 操作を移行できません。

  • 1 つの移行タスクで移行される CDC 対応テーブルの数が、[DTS がサポートする CDC が有効になっているテーブルの最大数] を超えると、事前チェックは失敗します。

  • タスクに増分データ移行が含まれており、CDC が有効になっているテーブルで単一フィールドのサイズが 64 KB を超えるデータが必要な場合は、事前に exec sp_configure 'max text repl size', -1; コマンドを実行してソースデータベースを設定します。

    説明

    デフォルトでは、CDC ジョブは最大サイズが 64 KB のデータを処理できます。

  • ソース SQL Server データベースを共有する複数のデータ移行インスタンスの増分データ収集モジュールは、互いに独立しています。

  • DTS タスクの実行に失敗した場合、DTS テクニカルサポートは 8 時間以内にタスクの復元を試みます。復元中、タスクが再起動され、タスクのパラメータが変更される場合があります。

    説明

    タスクのパラメータのみが変更される可能性があります。データベースのパラメータは変更されません。 変更される可能性のあるパラメータには、「DTS インスタンスのパラメータの変更」トピックの「インスタンスパラメータの変更」セクションのパラメータが含まれますが、これらに限定されません。

特別な場合

ソースインスタンスが ApsaraDB RDS for SQL Server インスタンスの場合、DTS は ApsaraDB RDS for SQL Server インスタンスに rdsdt_dtsacct という名前のアカウントを自動的に作成します。このアカウントはデータ移行に使用されます。データ移行タスクの実行中は、このアカウントを削除したり、このアカウントのパスワードを変更したりしないでください。そうでない場合、タスクが失敗する可能性があります。詳細については、「システムアカウント」をご参照ください。

課金

移行タイプ

インスタンス構成料金

インターネットトラフィック料金

スキーマ移行と完全データ移行

無料。

ターゲットデータベースの アクセス方法 パラメータが パブリック IP アドレス に設定されている場合、インターネットトラフィック料金が発生します。詳細については、「課金概要」をご参照ください。

増分データ移行

課金されます。詳細については、「課金概要」をご参照ください。

移行タイプ

  • スキーマ移行

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

    • DTS は、スキーマ、テーブル、ビュー、関数、およびプロシージャタイプのオブジェクトのスキーマ移行をサポートしています。

    • DTS は、アセンブリ、サービスブローカー、フルテキストインデックス、フルテキストカタログ、分散スキーマ、分散関数、共通言語ランタイム (CLR) ストアドプロシージャ、CLR スカラー値関数、CLR テーブル値関数、内部テーブル、システム、または集計関数のスキーマを移行しません。

    警告

    ソースデータベースとターゲットデータベースは異種データベースです。それらがサポートするデータ型は 1 対 1 の対応関係ではありません。この場合、タスクが失敗したり、データが失われたりする可能性があります。データ型変換がビジネスに与える影響を評価することをお勧めします。詳細については、「異種データベース間のデータ型マッピング」をご参照ください。

  • 完全データ移行

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

  • 増分データ移行

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

増分移行できる SQL 操作

操作タイプ

SQL 文

DML

INSERT、UPDATE、および DELETE

説明
  • UPDATE 操作でラージフィールドのみが更新される場合、DTS はその操作を移行しません。

  • ターゲット AnalyticDB for MySQL V3.0 クラスタにデータが書き込まれると、UPDATE 文は自動的に REPLACE INTO 文に変換されます。 UPDATE 文がプライマリキーで実行される場合、UPDATE 文は DELETE 文と INSERT 文に変換されます。

DDL

  • CREATE TABLE

    説明

    CREATE TABLE 操作でパーティションテーブルまたは関数を含むテーブルが作成される場合、DTS はその操作を移行しません。

  • ALTER TABLE

    ALTER TABLE 操作には、ADD COLUMN と DROP COLUMN のみが含まれます。

  • DROP TABLE

  • CREATE INDEX および DROP INDEX

説明
  • DTS は、ユーザー定義型を含む DDL 操作を移行しません。

  • DTS は、トランザクション DDL 操作を移行しません。たとえば、DTS は、複数の列に対する DDL 操作を含む SQL 操作、または DDL 操作と DML 操作の両方を含む SQL 操作を移行しません。このような SQL 操作を移行した後にデータ損失が発生する可能性があります。

  • DTS は、オンライン DDL 操作を移行しません。

  • DTS は、名前に予約キーワードが含まれるオブジェクトに対して実行された DDL 操作を移行しません。

  • DTS は、システムストアドプロシージャで実行された DDL 操作を移行しません。

  • DTS は TRUNCATE TABLE 操作を移行しません。

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

データベース

スキーマ移行

完全データ移行

増分データ移行

RDS インスタンス

移行対象オブジェクトの読み取り権限

移行対象オブジェクトの読み取り権限

オブジェクト所有者の権限

AnalyticDB for MySQL クラスタ

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

データベースアカウントの作成と承認方法については、以下のトピックをご参照ください。

手順

  1. 以下のいずれかの方法を使用して [データ移行] ページに移動し、データ移行インスタンスが存在するリージョンを選択します。

    DTS コンソール

    1. DTS コンソール にログインします。

    2. 左側のナビゲーションウィンドウで、データの移行 をクリックします。

    3. ページの左上隅で、データ移行インスタンスが存在するリージョンを選択します。

    DMS コンソール

    説明

    実際の操作は、DMS コンソールのモードとレイアウトによって異なる場合があります。詳細については、「シンプルモード」および「DMS コンソールのレイアウトとスタイルのカスタマイズ」をご参照ください。

    1. DMS コンソール にログインします。

    2. 上部のナビゲーションバーで、ポインタを [データ + AI] > [DTS (DTS)] > [データ移行] の上に移動します。

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

  2. タスクの作成 をクリックして、タスク設定ページに移動します。

  3. ソースデータベースとターゲットデータベースを設定します。次の表にパラメータを示します。

    警告

    ソースデータベースとターゲットデータベースを設定した後、ページの上部に表示される [制限] を読むことをお勧めします。そうでない場合、タスクが失敗したり、データの不整合が発生したりする可能性があります。

    セクション

    パラメータ

    説明

    N/A

    タスク名

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

    ソースデータベース

    [既存の接続を選択]

    • DTS に登録されているデータベースインスタンスを使用する場合は、ドロップダウンリストからインスタンスを選択します。 DTS は、インスタンスの以下のデータベースパラメータを自動的に入力します。詳細については、「データベース接続の管理」をご参照ください。

      説明

      DMS コンソールでは、[DMS データベースインスタンスを選択] ドロップダウンリストからデータベースインスタンスを選択できます。

    • インスタンスを DTS に登録できなかった場合、または DTS に登録されているインスタンスを使用する必要がない場合は、以下のデータベース情報を設定する必要があります。

    データベースタイプ

    ソースデータベースのタイプ。 [SQL Server] を選択します。

    アクセス方法

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

    インスタンスリージョン

    RDS インスタンスが存在するリージョン。

    Alibaba Cloud アカウント間でデータを複製

    Alibaba Cloud アカウント間でデータを移行するかどうかを指定します。 × を選択します。

    RDS インスタンス ID

    RDS インスタンスの ID。

    データベースアカウント

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

    データベースパスワード

    データベースインスタンスへのアクセスに使用するパスワード。

    暗号化

    ソースデータベースへの接続を暗号化するかどうかを指定します。ビジネス要件に基づいて、非暗号化 または SSL 暗号化 を選択します。

    • ソースデータベースで SSL 暗号化が無効になっている場合は、非暗号化 を選択します。

    • ソースデータベースで SSL 暗号化が有効になっている場合は、SSL 暗号化 を選択します。デフォルトでは、DTS はサーバー証明書を信頼します。

    宛先データベース

    [既存の接続を選択]

    • DTS に登録されているデータベースインスタンスを使用する場合は、ドロップダウンリストからインスタンスを選択します。 DTS は、インスタンスの以下のデータベースパラメータを自動的に入力します。詳細については、「データベース接続の管理」をご参照ください。

      説明

      DMS コンソールでは、[DMS データベースインスタンスを選択] ドロップダウンリストからデータベースインスタンスを選択できます。

    • インスタンスを DTS に登録できなかった場合、または DTS に登録されているインスタンスを使用する必要がない場合は、以下のデータベース情報を設定する必要があります。

    データベースタイプ

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

    アクセス方法

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

    インスタンスリージョン

    AnalyticDB for MySQL V3.0 クラスタが存在するリージョンを選択します。

    [インスタンス ID]

    AnalyticDB for MySQL V3.0 クラスタの ID。

    データベースアカウント

    AnalyticDB for MySQL V3.0 クラスタのデータベースアカウント。アカウントに必要な権限については、「データベースアカウントに必要な権限」をご参照ください。

    データベースパスワード

    データベースインスタンスへのアクセスに使用するパスワード。

  4. ページの下部にある [接続をテストして続行] をクリックします。

    説明
    • DTS サーバーの CIDR ブロックをソースデータベースとターゲットデータベースのセキュリティ設定に自動または手動で追加して、DTS サーバーからのアクセスを許可できることを確認してください。詳細については、「DTS サーバーの CIDR ブロックの追加」をご参照ください。

    • ソースデータベースまたはターゲットデータベースが自己管理データベースであり、その アクセス方法Alibaba Cloud インスタンス に設定されていない場合は、DTS サーバーの CIDR ブロック ダイアログボックスの 接続テスト をクリックします。

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

    1. オブジェクト設定 ページで、移行するオブジェクトを設定します。

      パラメータ

      説明

      移行タイプ

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

      • サービスのダウンタイムなしでデータを移行するには、[スキーマ移行][完全データ移行]、および [増分データ移行] を選択します。

      説明
      • [完全データ移行] を選択すると、CREATE TABLE 文を使用して作成されたテーブルのスキーマとデータをターゲットデータベースに移行できます。

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

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

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

        説明

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

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

        警告

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

        • ソースデータベースとターゲットデータベースのスキーマが同じで、データレコードのプライマリキーがターゲットデータベースの既存のデータレコードと同じである場合、次のシナリオが発生する可能性があります。

          • 完全データ移行中、DTS はデータレコードをターゲットデータベースに移行しません。ターゲットデータベースの既存のデータレコードは保持されます。

          • 増分データ移行中、DTS はデータレコードをターゲットデータベースに移行します。ターゲットデータベースの既存のデータレコードは上書きされます。

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

      移行元データベースと移行先データベースのスキーママッピングモード

      ビジネス要件に基づいてスキーママッピングモードを選択します。

      警告

      ソースデータベースのスキーマ名を使用しない場合、ソーステーブルは異なるスキーマ間で一意の名前を持つ必要があります。そうでない場合、データの不整合が発生したり、データ同期タスクが失敗したりする可能性があります。

      SQL Server増分同期モード

      • クラスター化テーブルはログ解析で増分同期し、ヒープテーブルの場合は CDC で増分同期します (ハイブリッド式ログ解析):

        • 利点:

          • このモードは、ヒープテーブル、プライマリキーのないテーブル、圧縮テーブル、および計算列を含むテーブルをサポートします。

          • このモードは、より高い安定性とさまざまな完全な DDL 文を提供します。

        • 欠点:

          • DTS は、ソースデータベースにトリガー dts_cdc_sync_ddl、ハートビートテーブル dts_sync_progress、および DDL ストレージテーブル dts_cdc_ddl_history を作成し、ソースデータベースと特定のテーブルに対して変更データキャプチャ (CDC) を有効にします。

          • ソースデータベースで CDC が有効になっているテーブルに対して SELECT INTO または TRUNCATE 文を実行することはできません。ソースデータベースで DTS によって作成されたトリガーは手動で削除できません。

      • ソースデータベースのログに基づく増分同期 (ヒープテーブル非対応):

        • 利点:

          このモードは、ソースデータベースの設定を変更しません。

        • 欠点:

          このモードは、ヒープテーブル、プライマリキーのないテーブル、圧縮テーブル、または計算列を含むテーブルをサポートしません。

      • 増分同期のための CDC インスタンスのポーリングとクエリ:

        • 利点:

          • ソースデータベースが Amazon RDS for SQL Server インスタンス、Microsoft Azure SQL Database のデータベース、Microsoft Azure SQL Managed Instance、Microsoft Azure SQL Server on Virtual Machine、または Google Cloud SQL for SQL Server インスタンスの場合、完全データ移行と増分データ移行がサポートされます。

          • SQL Server のネイティブ CDC コンポーネントを使用して増分データを取得する場合、増分移行はより安定し、ネットワーク帯域幅をあまり占有しません。

        • 欠点:

          • DTS インスタンスで使用されるソースデータベースアカウントには、CDC を有効にする権限が必要です。増分データ移行には約 10 秒かかります。

          • 複数のデータベースで複数のテーブルを移行すると、安定性とパフォーマンスの問題が発生する可能性があります。

      説明

      [移行タイプ] パラメータで [増分データ移行] を選択した場合にのみ、このパラメータを設定できます。

      [DTS がサポートする CDC が有効になっているテーブルの最大数。]

      ビジネス要件に基づいて、DTS タスクがサポートする CDC が有効になっているテーブルの最大数を設定することをお勧めします。デフォルト値: 1,000。

      説明

      [SQL Server 増分同期モード] パラメータを [ソースデータベースのログに基づく増分同期 (ヒープテーブルはサポートされていません)] に設定した場合、このパラメータは使用できません。

      DDL操作とDML操作の同期

      インスタンスレベルで増分データ移行中に移行される SQL 操作。詳細については、「増分移行できる SQL 操作」をご参照ください。

      説明

      特定のデータベースまたはテーブルで実行された SQL 操作を選択するには、[選択したオブジェクト] セクションのオブジェクトを右クリックします。表示されるダイアログボックスで、増分移行する SQL 操作を選択します。

      ソースオブジェクト

      ソースオブジェクト セクションから 1 つ以上のオブジェクトを選択します。 向右小箭头 アイコンをクリックして、選択中のオブジェクト セクションにオブジェクトを追加します。

      説明

      このシナリオでは、異種データベース間でデータ移行が実行されます。したがって、移行できるのはテーブルのみです。ビュー、トリガー、ストアドプロシージャなどの他のオブジェクトは、ターゲットデータベースに移行されません。

      選択中のオブジェクト

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

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

      • 特定のデータベースまたはテーブルで実行された SQL 操作を選択するには、[選択したオブジェクト] セクションのオブジェクトを右クリックします。表示されるダイアログボックスで、移行する SQL 操作を選択します。

    2. 次へ:詳細設定 をクリックして詳細設定を行います。

      パラメータ

      説明

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

      デフォルトでは、専用クラスタを指定しない場合、DTS はデータ移行タスクを共有クラスタにスケジュールします。データ移行タスクの安定性を向上させるには、専用クラスタを購入します。詳細については、「DTS 専用クラスタとは」をご参照ください。

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

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

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

      • DTS が接続を再試行すると、DTS インスタンスの料金が発生します。ビジネス要件に基づいてリトライ時間の範囲を指定することをお勧めします。また、ソースデータベースとターゲットインスタンスが解放された後、できるだけ早く DTS インスタンスを解放することもできます。

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

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

      重要

      移行元データベースと移行先データベースで他の問題が発生した場合の、再試行までの待機時間です。 パラメータの値は、失敗した接続の再試行時間 パラメータの値よりも小さくなければなりません。

      完全なデータ移行のためのスロットリングを有効化

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

      説明

      移行タイプ パラメータで 完全データ移行 を選択した場合にのみ、このパラメータを設定できます。

      完全なデータ移行のスロットリングを有効化

      増分データ移行のスロットリングを有効にするかどうかを指定します。スロットリングを設定するには、1 秒あたりの増分移行の行数 RPS および 1 秒あたりの増分移行データ量 (MB) BPS パラメータを設定する必要があります。これにより、ターゲットデータベースサーバーの負荷が軽減されます。

      説明

      移行タイプ パラメータで 増分データ移行 を選択した場合にのみ、このパラメータを設定できます。

      環境タグ

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

      ETL の設定

      抽出、変換、書き出し (ETL) 機能を有効にするかどうかを指定します。詳細については、「ETL とは」をご参照ください。有効値:

      [監視とアラート]

      データ移行タスクのアラートを設定するかどうかを指定します。タスクが失敗した場合、または移行レイテンシが指定されたしきい値を超えた場合、アラート連絡先に通知が送信されます。有効値:

      • [いいえ]: アラートを設定しません。

      • [はい]: アラートを設定します。この場合、アラートしきい値と アラート通知設定 も設定する必要があります。詳細については、「監視とアラートの設定」トピックの DTS タスクの作成時に監視とアラートを設定する セクションをご参照ください。

    3. [次のステップ: データ検証] をクリックして、データ検証タスクを設定します。

      データ検証機能の使用方法の詳細については、「データ検証タスクの設定」をご参照ください。

    4. オプション: ページの下部にある [次へ: データベースとテーブルフィールドの設定] をクリックします。表示されるダイアログボックスで、[タイプ][プライマリキー列][分散キー]、および [パーティションキー][パーティションルール][パーティションライフサイクル] などのパーティションキーに関するパラメータを、ターゲットデータベースに移行するテーブルに対して設定します。

      説明
      • このステップは、移行タイプ パラメータで スキーマ移行 を選択した場合にのみ使用できます。パラメータを変更するには、[定義ステータス][すべて] に設定します。

      • [プライマリキー列] フィールドでは、複数の列を選択して複合プライマリキーを形成できます。この場合、1 つ以上の [プライマリキー列][分散キー] およびパーティションキーとして選択する必要があります。詳細については、「CREATE TABLE」をご参照ください。

  6. タスク設定を保存し、事前チェックを実行します。

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

    • パラメータを表示する必要がない場合、またはすでに表示している場合は、ページの下部にある 次:タスク設定の保存と事前チェック をクリックします。

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

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

    • 事前チェック中に項目のアラートがトリガーされた場合:

      • アラート項目を無視できない場合は、失敗した項目の横にある [詳細の表示] をクリックして、問題をトラブルシューティングします。その後、事前チェックを再度実行します。

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

  7. インスタンスを購入します。

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

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

      セクション

      パラメータ

      説明

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

      [リソースグループ]

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

      インスタンスクラス

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

    3. チェックボックスをオンにして、[Data Transmission Service (従量課金制) サービス規約] を読んで同意します。

    4. [購入して開始] をクリックします。表示されるメッセージで、[OK] をクリックします。

      [データ移行] ページでタスクの進捗状況を確認できます。

      説明
      • データ移行タスクを増分データの移行に使用できない場合、タスクは自動的に停止します。 [ステータス] セクションに [完了] と表示されます。

      • データ移行タスクを増分データの移行に使用できる場合、タスクは自動的に停止しません。増分データ移行タスクは停止または完了しません。 [ステータス] セクションに [実行中] と表示されます。