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

Data Transmission Service:ApsaraDB MyBase for SQL Server インスタンスから ApsaraDB RDS for SQL Server インスタンスへのデータ移行

最終更新日:Jul 10, 2026

Data Transmission Service (DTS) を使用すると、最小限のダウンタイムで ApsaraDB MyBase for SQL Server インスタンスから ApsaraDB RDS for SQL Server インスタンスにデータを移行できます。このガイドでは、スキーマ移行、完全データ移行、増分データ移行を組み合わせた移行タスクの設定手順について説明します。

適用範囲

開始する前に、次の点を確認してください。

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

  • 移行先インスタンスの利用可能なストレージ容量が、ソースインスタンスの総データサイズよりも大きいこと。

重要

[SQL Server 増分同期モード][非ヒープテーブルはログベースの解析、ヒープテーブルは CDC ベースの増分同期] に設定した場合、ハイブリッドログベース解析モードが使用されます。以下のソースデータベースバージョンがサポートされています。

  • Enterprise または Enterprise Evaluation Edition: SQL Server 2012、2014、2016、2019、2022、または 2025

  • Standard Edition: SQL Server 2016、2019、2022、または 2025

複数のタスクに分割する場合

ソースインスタンスに次のいずれかの条件が当てはまる場合は、移行を複数のタスクに分割してください。

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

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

  • 単一のデータベースが 1 時間あたり 100 を超える DDL 文を実行している

  • 単一のデータベースでログが 20 MB/s のレートで書き込まれている

  • 1,000 を超えるテーブルで変更データキャプチャ (CDC) を有効にする必要がある

課金

移行タイプ タスク設定料金 インターネットトラフィック料金
スキーマ移行と完全データ移行 無料 無料
増分データ移行 有料です。「課金概要」をご参照ください。

移行タイプの選択

DTS は 3 種類の移行タイプをサポートしています。要件に応じてこれらを組み合わせてください。

移行タイプ 機能 使用場面
スキーマ移行 選択したオブジェクトのスキーマをソースからターゲットに移行します 最初のステップとして常に選択します
完全データ移行 既存のすべてのデータをソースからターゲットに移行します 初期移行に必要です
増分データ移行 完全移行の完了後、データの変更を継続的に移行します ダウンタイムを最小限に抑え、移行中もサービスを継続して実行する場合に選択します

スキーマ移行でサポートされる詳細については、「サポート対象および対象外のオブジェクト」をご参照ください。

説明 DTS は外部キーを移行しません。ソースデータベースで定義されたカスケード操作や削除操作は、ターゲットデータベースには引き継がれません。

制限事項

タスクを設定する前に、これらの制限事項を確認してください。

ソースデータベースの要件

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

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

  • 移行中にテーブル名または列名を変更する場合、1 つの移行タスクで移行できるテーブルは最大 1,000 個です。1,000 個を超えるテーブルを移行する場合は、複数のタスクを設定するか、テーブルレベルではなくデータベースレベルで移行してください。

  • 1 つの移行タスクで移行できるデータベースは最大 10 個です。10 個を超えるデータベースを移行する場合は、複数のタスクを設定してください。

増分データ移行の場合は、さらに次の点も確認してください。

  • データログ機能が有効になっていること。バックアップモードは [完全] に設定し、フル物理バックアップが実行済みである必要があります。

  • ログ保持期間:ログの保持期間が不十分な場合、タスクが失敗したり、データの不整合やデータ損失が発生したりする可能性があります。これらの要件を満たさない場合、DTS のサービスレベルアグリーメント (SLA) も無効になります。

    • 増分移行のみ:ログを 24 時間以上保持する

    • 完全移行 + 増分移行:ログを最低 7 日間保持する。完全移行が完了した後、保持期間を 24 時間以上に設定できます

CDC が有効なテーブルでは、次の条件を満たす必要があります (満たさない場合、事前チェックは失敗します):

  • sys.sysservers ビューの srvname フィールドが SERVERPROPERTY 関数の戻り値と一致すること

  • データベースオーナーが sa (自己管理 SQL Server) または sqlsa (ApsaraDB RDS for SQL Server) であること

  • Enterprise Edition: SQL Server 2008 以降

  • Standard Edition: SQL Server 2016 SP1 以降

  • SQL Server 2017 を実行している Standard または Enterprise Edition:より新しいバージョンにアップグレードすること

追加のソースデータベースの制限:

  • スキーマ移行および完全データ移行中に、データベースまたはテーブルスキーマを変更する DDL 文を実行しないでください。これにより、移行タスクが失敗します。

  • 完全データ移行のみを実行する場合 (増分なし)、移行中にソースデータベースに書き込みを行わないでください。データの不整合を避けるために、スキーマ移行、完全データ移行、増分データ移行の 3 つの移行タイプをすべて選択してください。

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

  • 読み取り専用のソースインスタンスは、DDL 操作の移行をサポートしていません。

  • ハイブリッドログベース解析モードでは、同じテーブルに対して 10 分以内に複数の列追加または列削除操作を実行しないでください。例えば、次のシーケンスを 10 分以内に実行するとエラーが発生します。

    ALTER TABLE test_table DROP COLUMN Flag;
    ALTER TABLE test_table ADD Remark nvarchar(50) not null default('');
  • ソースが Web Edition を実行している ApsaraDB RDS for SQL Server インスタンスの場合、[SQL Server 増分同期モード][ソースデータベースのログに基づく増分同期 (ヒープテーブルはサポートされていません)] に設定します。

その他の制限事項

  • DTS は次のデータ型を移行しません:TEXTCURSORROWVERSIONSQL_VARIANTHIERACHYIDGEOMETRY

  • [ソースデータベースのログに基づく増分同期] モード (非ハイブリッド) を使用する場合、テーブルにはプライマリキー列を含むクラスター化インデックスが必要です。ヒープテーブル、プライマリキーのないテーブル、圧縮テーブル、および計算列のあるテーブルはサポートされていません。ヒープテーブル、プライマリキーのないテーブル、圧縮テーブル、または計算列のあるテーブルについては、FAQ をご参照ください。

  • 互換性のあるデータベースバージョン間でのみデータを移行してください。

  • 単一の移行タスクで CDC が有効なテーブルが 1,000 を超えると、事前チェックは失敗します。

  • ソースデータベースで CDC が有効になっているテーブルについては、1 秒あたりの最大レコード数を 1,000 に設定することを推奨します。

  • 増分データ移行では、ターゲットデータベースのトリガーと外部キーを無効にする必要があります。

  • 移行はオフピーク時に実行してください。完全データ移行はソースとターゲットの両方で読み取りおよび書き込みリソースを使用するため、データベースサーバーの負荷が増加します。また、完全移行中の同時 INSERT 操作は、ターゲットデータベースでテーブルの断片化を引き起こし、ターゲットの表領域がソースよりも大きくなる原因となります。

  • DTS は、FLOAT および DOUBLE 型の列から値を取得するために ROUND(COLUMN,PRECISION) を使用します。デフォルトの精度は、FLOAT で 38 桁、DOUBLE で 308 桁です。移行を開始する前に、これらの精度設定が要件を満たしていることを確認してください。

  • DTS は、失敗した移行タスクを最大 7 日間自動的に再試行します。ワークロードをターゲットデータベースに切り替える前に、失敗したタスクを停止またはリリースするか、ターゲット上の DTS アカウントから書き込み権限を取り消してください。そうしないと、再開されたタスクがターゲットのデータをソースデータで上書きする可能性があります。

  • 増分データ移行中にインデックスの再作成操作を実行しないでください。タスクが失敗し、データ損失につながる可能性があります。また、DTS は CDC が有効なテーブルのプライマリキーに対する DDL 操作を移行できません。

説明 DTS は、RDS インスタンスにターゲットデータベースを自動的に作成します。データベース名が ApsaraDB RDS の命名規則に準拠していない場合は、移行タスクを設定する前に手動でデータベースを作成してください。

サポート対象および対象外のオブジェクト

スキーマ移行:サポート対象オブジェクト

テーブル、ビュー、トリガー、シノニム、SQL ストアドプロシージャ、SQL 関数、プランガイド、ユーザー定義型、ルール、デフォルト、シーケンス。

スキーマ移行:サポート対象外オブジェクト

アセンブリ、サービスブローカー、フルテキストインデックス、フルテキストカタログ、分散スキーマ、分散関数、Common Language Runtime (CLR) ストアドプロシージャ、CLR スカラー値関数、CLR テーブル値関数、内部テーブル、システムオブジェクト、集計関数。

増分データ移行でサポートされる SQL 操作

操作タイプ サポートされる SQL 文
DML INSERTUPDATEDELETE
説明

大きなフィールドのみを変更する UPDATE 操作は移行されません。

DDL ALTER TABLE (ADD COLUMN、DROP COLUMN、RENAME COLUMN のみ)、CREATE TABLECREATE INDEX (パーティションテーブルと関数を持つテーブルは移行されません)、DROP TABLERENAME TABLETRUNCATE TABLE
説明 トランザクション DDL 操作は移行されません。例えば、複数の列に対する DDL を含む SQL 操作や、DDL と DML が混在する SQL 操作は移行されません。データ損失が発生する可能性があります。
説明 ユーザー定義型を含む DDL 操作は移行されません。
説明 オンライン DDL 操作は移行されません。
説明 ハイブリッドログベース解析モードでは、すべての一般的な DDL 操作が移行されます。

必要な権限

データベース スキーマ移行 完全データ移行 増分データ移行
ソースインスタンス 移行対象オブジェクトに対する読み取り権限 所有者の権限 アカウントの作成」および「アカウント権限の変更」をご参照ください。
宛先インスタンス ターゲットデータベースに対する読み取りおよび書き込み権限 (owner 権限を推奨)

移行タスクの設定

ステップ1:データ移行タスクページへの移動

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

  2. トップナビゲーションバーで、DTS にポインターを合わせ、[DTS (DTS)] > [データ移行] を選択します。

説明 実際の操作手順は、DMS コンソールのレイアウトによって異なる場合があります。「シンプルモード」および「DMS コンソールのレイアウトとスタイルをカスタマイズする」をご参照ください。または、新しい DTS コンソールのデータ移行ページに直接移動することもできます。

ステップ2:リージョンの選択

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

説明 新しい DTS コンソールでは、左上の角でリージョンを選択します。

ステップ3:ソースデータベースとターゲットデータベースの設定

[タスクの作成] をクリックし、次のパラメーターを設定します。

警告

ソースデータベースとターゲットデータベースを設定した後、ページの上部に表示される [制限事項] をお読みください。このステップをスキップすると、タスクが失敗したり、データの不整合が発生したりする可能性があります。

ソースデータベース

パラメーター 説明
タスク名 タスクを説明する名前。DTS は自動的に名前を生成しますが、意味のある名前を指定するとタスクを識別しやすくなります。一意である必要はありません。
既存の DMS データベースインスタンスを選択 (オプション) すでに DMS データベースインスタンスを登録している場合は、ここで選択します。DTS は以下のパラメーターを自動的に入力します。そうでない場合は、手動でパラメーターを設定します。
データベースタイプ [SQL Server] を選択します。
アクセス方法 [Alibaba Cloud インスタンス] を選択します。ApsaraDB MyBase for SQL Server インスタンスは、このアクセス方法を使用して DTS に接続します。
インスタンスリージョン ソースの ApsaraDB MyBase for SQL Server インスタンスが存在するリージョン。
Alibaba Cloud アカウント間でのデータ複製 同一アカウント内の移行の場合は [いいえ] を選択します。
RDS インスタンス ID ソースの ApsaraDB MyBase for SQL Server インスタンスの ID。
データベースアカウント ソースインスタンスのデータベースアカウント。「必要な権限」をご参照ください。
データベースパスワード データベースアカウントのパスワード。

ターゲットデータベース

パラメーター 説明
既存の DMS データベースインスタンスを選択 (オプション) すでに DMS データベースインスタンスを登録している場合は、ここで選択します。DTS は以下のパラメーターを自動的に入力します。そうでない場合は、手動でパラメーターを設定します。
データベースタイプ [SQL Server] を選択します。
アクセス方法 [Alibaba Cloud インスタンス] を選択します。
インスタンスリージョン 移行先の ApsaraDB RDS for SQL Server インスタンスが存在するリージョン。
インスタンス ID 移行先の ApsaraDB RDS for SQL Server インスタンスのインスタンス ID。
データベースアカウント 移行先インスタンスのデータベースアカウント。「必要な権限」をご参照ください。
データベースパスワード データベースアカウントのパスワード。

ステップ4:接続テスト

[接続をテストして続行] をクリックします。

DTS は、DTS サーバーの CIDR ブロックを Alibaba Cloud データベースインスタンスの IP アドレスホワイトリストに自動的に追加します。Elastic Compute Service (ECS) インスタンス上の自己管理データベースの場合、DTS は CIDR ブロックを ECS セキュリティグループルールに追加しますが、ECS インスタンスがデータベースに到達できることを確認する必要があります。データベースが複数の ECS インスタンスにまたがって実行されている場合、DTS の CIDR ブロックを各 ECS インスタンスのセキュリティグループに手動で追加してください。データセンターまたはサードパーティのクラウド環境にある自己管理データベースの場合、DTS の CIDR ブロックをデータベースの IP アドレスホワイトリストに手動で追加してください。CIDR ブロックの完全なリストについては、「DTS サーバーの CIDR ブロックを追加する」をご参照ください。

警告

DTS の CIDR ブロックをホワイトリストやセキュリティグループに追加すると、セキュリティリスクが生じます。続行する前に、ユーザー名とパスワードのセキュリティを強化し、公開ポートを制限し、API 呼び出しを認証し、ホワイトリストとセキュリティグループのルールを定期的に監査して不正な CIDR ブロックを削除するなど、予防措置を講じてください。また、Express Connect、VPN Gateway、または Smart Access Gateway を介してデータベースを DTS に接続することもできます。

ステップ5:オブジェクトの選択と同期モードの設定

パラメーター 説明
移行タイプ シナリオに応じた移行タイプを選択します。ダウンタイムなしの完全移行の場合は、[スキーマ移行][完全データ移行][増分データ移行] を選択します。メンテナンスウィンドウを設けた移行の場合は、[スキーマ移行][完全データ移行] のみを選択しますが、移行中はソースデータベースに書き込みを行わないでください。
競合テーブルの処理モード [事前チェックしてエラーを報告]オブジェクト名マッピング:ターゲットにソーステーブルと同じ名前のテーブルが存在する場合、事前チェックは失敗します。を使用して、競合するテーブルの名前を変更します。[エラーを無視して続行]:同じテーブル名に対する事前チェックをスキップします。完全移行中、ターゲット内の競合するレコードは保持されます (上書きされません)。増分移行中、競合するレコードは上書きされます。注意して使用してください。
SQL Server 増分同期モード 以下の「同期モードの選択」をご参照ください。
ソースオブジェクト [ソースオブジェクト] セクションからオブジェクトを選択し、右矢印アイコンをクリックして [選択済みオブジェクト] に移動します。列、テーブル、またはスキーマを選択できます。テーブルまたは列を選択すると、ビュー、トリガー、ストアドプロシージャは除外されます。
選択済みオブジェクト 単一のオブジェクトの名前を変更するには、オブジェクトを右クリックして、「単一オブジェクトの名前をマッピングする」をご参照ください。複数のオブジェクトの名前を一度に変更するには、[一括編集] をクリックします。「複数のオブジェクト名を一度にマッピングする」をご参照ください。SQL 条件で行をフィルターするには、オブジェクトを右クリックして条件を指定します。「SQL 条件を使用してデータをフィルターする」をご参照ください。特定のオブジェクトに対して複製する SQL 操作を選択するには、オブジェクトを右クリックし、操作を選択します。
説明 オブジェクト名マッピング機能でオブジェクトの名前を変更すると、それに依存する他のオブジェクトの移行が失敗する可能性があります。

同期モードの選択

ソースデータベースとテーブルの種類に基づいて [SQL Server 増分同期モード] を選択します。

モード 利点 欠点
非ヒープテーブルはログベースの解析、ヒープテーブルは CDC ベースの増分同期 (ハイブリッドログベース解析) ヒープテーブル、プライマリキーのないテーブル、圧縮テーブル、計算列を持つテーブルをサポートします。より高い安定性と完全な DDL サポートを提供します。 DTS はソースデータベースに dts_cdc_sync_ddl (トリガー)、dts_sync_progress (ハートビートテーブル)、dts_cdc_ddl_history (DDL 履歴テーブル) を作成し、CDC を有効にします。CDC が有効なテーブルでは SELECT INTOTRUNCATE は実行できません。DTS が作成したトリガーは手動で削除できません。
ソースデータベースのログに基づく増分同期 (ヒープテーブルはサポートされていません) ソースデータベースの設定を変更しません。 ヒープテーブル、プライマリキーのないテーブル、圧縮テーブル、計算列を持つテーブルをサポートしていません。テーブルにはプライマリキー列を含むクラスター化インデックスが必要です。
CDC インスタンスのポーリングとクエリによる増分同期 Amazon RDS SQL Server、Azure SQL Database、Google Cloud SQL for SQL Server からの移行をサポートします。ネイティブの CDC コンポーネントを使用するため、少ないネットワーク帯域幅で安定した動作を実現します。 DTS アカウントには CDC を有効にする権限が必要です。増分移行の開始には約 10 秒かかります。複数のデータベースにまたがる多数のテーブルを移行する場合、安定性やパフォーマンスの問題が発生する可能性があります。
説明 ハイブリッドログベース解析モードでは、DTS はソースデータベースと特定のテーブルに対しても CDC を有効にします。

ステップ6:詳細設定

[次へ:詳細設定] をクリックし、次のパラメーターを設定します。

データ検証設定

移行後のデータ検証の有効化については、「データ検証を有効にする」をご参照ください。

詳細設定

パラメーター 説明
タスクスケジューリング用の専用クラスター デフォルトでは、DTS はタスクを共有クラスターにスケジュールします。専用クラスターを使用するには、まず購入する必要があります。詳細については、「DTS 専用クラスターとは
アラートの設定 タスクが失敗した場合、または移行遅延がしきい値を超えた場合に通知を受信するには、[はい] を選択し、アラートのしきい値と通知設定を構成します。 詳細については、「モニタリングとアラートを設定する」をご参照ください。
接続失敗時の再試行時間 タスク開始後に接続が失敗した場合に DTS が再試行する時間。有効な値:10~1,440 分。デフォルト:720。このパラメーターには 30 より大きい値を設定することを推奨します。この期間内に DTS が再接続できれば、タスクは再開されます。そうでない場合、タスクは失敗します。複数のタスクが同じソースまたはターゲットデータベースを共有する場合、最も短い再試行時間が優先されます。再試行中も DTS インスタンスの料金が発生します。
その他の問題での再試行時間 失敗した DDL または DML 操作を DTS が再試行する時間。有効な値:1~1,440 分。デフォルト:10。このパラメーターには 10 より大きい値を設定することを推奨します。[接続失敗時の再試行時間] よりも短くする必要があります。
完全データ移行のスロットリングを有効にする [はい] を選択すると、完全移行中の読み取り/書き込み負荷を制限できます。必要に応じて [ソースデータベースへの 1 秒あたりのクエリ数 (QPS)][完全データ移行の RPS][完全データ移行の BPS] を設定します。[完全データ移行] が選択されている場合にのみ利用可能です。
増分データ移行のスロットリングを有効にする [はい] を選択すると、増分移行中の負荷を制限できます。必要に応じて [増分データ移行の RPS][増分データ移行の BPS] を設定します。[増分データ移行] が選択されている場合にのみ利用可能です。
環境タグ ご利用の環境に応じて、インスタンスを [通常] または [本番環境] としてタグ付けします。
ETL の設定 [はい] を選択すると、ETL (抽出・変換・書き出し) 機能を有効にして、データ処理文を入力できます。ETL の設定 および ETL とは

ステップ7:事前チェックの実行

[次へ:タスク設定を保存して事前チェックを実行] をクリックします。

説明 このタスク設定の API パラメーターをプレビューするには、[次へ:タスク設定を保存して事前チェックを実行] にポインターを合わせ、[OpenAPI パラメーターのプレビュー] をクリックします。

DTS は移行開始前に事前チェックを実行します。タスクは事前チェックに合格した後にのみ続行できます。

  • チェック項目が失敗した場合、[詳細の表示] をクリックして問題を解決し、[再度事前チェック] をクリックします。

  • チェック項目にアラートが表示された場合:

    • アラートを無視できない場合は、[詳細の表示] をクリックして問題を修正し、再度事前チェックを実行します。

    • アラートを安全に無視できる場合は、[アラート詳細の確認] > [無視] > [OK] > [再度事前チェック] をクリックします。アラートを無視すると、データの不整合が発生する可能性があります。

ステップ8:インスタンスの購入

成功率100% に達するまで待ってから、[次へ: インスタンスの購入] をクリックしてください。

[インスタンスの購入] ページで、以下を設定します。

項目 パラメーター 説明
新規インスタンスクラス リソースグループの設定項目 移行インスタンスのリソースグループ。デフォルトは デフォルトのリソースグループ です。詳細については、「Resource Management とは
インスタンスクラス インスタンスクラスによって移行速度が決まります。データ量とタイムラインに基づいて選択してください。詳細については、「データ移行インスタンスの仕様」をご参照ください。

ステップ9:移行の開始

  1. [Data Transmission Service (従量課金) 利用規約] チェックボックスを読み、選択します。

  2. [購入して開始] をクリックし、ダイアログボックスで [OK] をクリックします。

タスクがタスクリストに表示されます。そこから進捗状況を監視します。

次のステップ

移行タスクが完了し、増分移行の遅延がほぼゼロになった後:

  1. ソースデータベースへの書き込みを停止します。

  2. 増分移行の遅延が 0 秒になるのを待ちます。

  3. アプリケーションの接続文字列を移行先の ApsaraDB RDS for SQL Server インスタンスに切り替えます。

  4. ソースとターゲット間のデータ整合性を検証します。

  5. DTS 移行タスクを停止またはリリースします。