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

ApsaraDB RDS:ApsaraDB RDS for SQL Server インスタンス間のデータ移行

最終更新日:Aug 22, 2026

Data Transmission Service (DTS) を使用して、最小限のダウンタイムまたはダウンタイムなしで ApsaraDB RDS for SQL Server インスタンス間でデータベースを移行します。DTS は、スキーマ移行、完全データ移行、増分データ移行の 3 つの移行タイプをサポートしており、これらを組み合わせることで、許容できるダウンタイムに合わせて対応できます。

移行アプローチの選択

アプローチ 移行タイプ ダウンタイム
完全移行 スキーマ移行 + 完全データ移行 切り替え時に必要
最小ダウンタイム移行 スキーマ移行 + 完全データ移行 + 増分データ移行 ほぼゼロ

スキーマ移行をスキップする場合:タスクを開始する前に、ターゲットデータベースに必要なデータベースとテーブルがすでに含まれていることを確認してください。

増分データ移行をスキップする場合:移行中にソースインスタンスへの書き込みを行わないでください。書き込みを行うと、ソースデータベースとターゲットデータベースに不整合が生じます。

前提条件

開始する前に、以下を確認してください。

課金

移行タイプ インスタンス構成料金 インターネットトラフィック料金
スキーマ移行 + 完全データ移行 無料 [アクセス方法] が [パブリック IP アドレス] に設定されている場合に課金されます。詳細については、「課金概要
増分データ移行 有料、課金概要 —

必要な権限

ソースインスタンスと宛先インスタンスのデータベースアカウントに、以下の権限があることを確認してください。アカウントの作成または変更については、「アカウントの作成」および「アカウント権限の変更」をご参照ください。

データベース スキーマ移行 完全移行 増分移行
ソースインスタンス 読み取り 読み取り 移行対象オブジェクトの所有者
宛先インスタンス 読み取りと書き込み

制限事項と注意事項

移行タスクを設定する前に、すべての制限事項を確認してください。これらを無視すると、タスクの失敗、データの不整合、またはデータ損失の原因となる可能性があります。

スケール制限

  • 1 つの移行タスクでサポートされるデータベースは最大 10 個です。この制限を超えると、安定性やパフォーマンスの問題が発生します。必要に応じて、データベースを複数のタスクに分割してください。

  • 増分移行の場合、ソースデータベースのテーブル数を 1,000 未満にしてください。これを超えると、タスクの遅延や不安定性の原因となります。

  • オブジェクト名マッピングを使用して宛先でテーブル名を変更する場合、1 つのタスクでサポートされるテーブルは最大 1,000 個です。これを超えると、リクエストエラーが発生します。タスクを分割するか、データベース全体を移行してください。

  • ソースインスタンスに以下のいずれかの条件が適用される場合は、複数のタスクに分割してください。

    • 10 個を超えるデータベース

    • 単一データベースのログバックアップ頻度が 1 時間に 1 回を超える

    • 単一データベースの DDL 頻度が 1 時間に 100 回を超える

    • 単一データベースのログボリュームが 20 MB/s を超える

テーブル構造の要件

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

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

  • 増分同期モードが [ハイブリッドログベース解析] に設定されている場合、上記のテーブル構造の制限は適用されませんが、ソースデータベースの変更データキャプチャ (CDC) ジョブが正常に実行されている必要があります。

  • クラスター化列ストアインデックスを持つテーブルでは CDC を有効にできません。

DDL 操作の制限

  • スキーマ移行または完全データ移行中に DDL 操作 (テーブルやデータベース構造の変更など) を実行しないでください。タスクは失敗します。

  • 増分移行中に連続した列の追加/削除操作を実行しないでください。1 分以内に 2 回以上の列の追加または削除の DDL 操作を行うと、タスクの失敗の原因となる可能性があります。このような操作の間隔は 10 分以上にしてください。

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

  • DTS は、トランザクション DDL (単一ステートメント内の複数列 DDL または DDL と DML の組み合わせ)、ユーザー定義型を持つ DDL、オンライン DDL、予約キーワードを含む名前のオブジェクトに対する DDL、またはシステムストアドプロシージャを介して実行される DDL を移行しません。

インデックス再作成の制限

増分データ移行中にインデックス再作成操作を実行しないでください。タスクが失敗し、データ損失が発生する可能性があります。

サポートされていないデータ型

次のデータ型はサポートされていません:CURSOR、ROWVERSION、SQL_VARIANT、HIERARCHYID、POLYGON、GEOMETRY、GEOGRAPHY。

ログ保持の要件

  • 増分移行のみ:ソースデータベースのログを 24 時間以上保持します

  • 完全データ + 増分データ移行:ログを少なくとも 7 日間保持します (完全移行が完了した後、これを 24 時間以上に短縮できます)

  • 増分移行タスクの場合、ソースデータベースのデータログが有効になっており、バックアップモードが Full に設定され、フル物理バックアップが正常に完了している必要があります。

CDC 構成の要件

  • ソーステーブルで CDC を有効にする必要がある場合、sys.sysservers ビューの srvname フィールドは SERVERPROPERTY 関数の戻り値と一致する必要があります。

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

  • CDC コンポーネントは、デフォルトで増分データを 3 日間保持します。ビジネス要件に基づいてこれを調整してください。

  • 単一テーブルの 1 日あたりの平均増分 SQL 変更が 1,000 万を超える場合、CDC の保持期間を 1,440 分 (1 日) に設定します。

  • CDC が有効なテーブルの単一フィールドに 64 KB を超えるデータを書き込む必要がある場合、タスクを開始する前にソースデータベースで次のコマンドを実行してください:

    EXEC sp_configure 'max text repl size', -1;

トリガーと外部キー

移行タスクに増分データ移行が含まれる場合、開始前にターゲットデータベースのすべてのトリガーと外部キーを無効にしてください。そうしないと、タスクが失敗したり、データ損失が発生したりする可能性があります。

データベースの命名

移行するデータベース名が ApsaraDB RDS for SQL Server の命名規則に準拠していない場合、移行タスクを設定する前に、宛先インスタンスに手動でデータベースを作成してください。

TDE (透過的データ暗号化)

ソースデータベースが ApsaraDB RDS for SQL Server で、タスクに増分移行が含まれる場合、移行インスタンスの安定した動作を確保するために TDE を無効にしてください。

DTS システムアカウント

タスク実行中に DTS システムアカウント (例:rdsdt_dtsacct) を削除または変更しないでください。タスクは失敗します。

タスクの自動再開と切り替えリスク

DTS は、過去 7 日以内に失敗した移行タスクを自動的に再開しようとします。ワークロードを宛先インスタンスに切り替える前に、タスクを終了またはリリースするか、宛先インスタンスに対する DTS アカウントの書き込み権限を取り消してください。そうしないと、宛先インスタンスのデータが上書きされる可能性があります。

その他の注意事項

  • ソースデータベースをホストするサーバーに十分な送信帯域幅があることを確認してください。帯域幅が不足すると、移行速度が低下します。データベースの負荷増加を避けるため、オフピーク時に移行タスクを実行することを推奨します。

  • クロスバージョンの移行については、事前に互換性を確認してください。詳細については、「ApsaraDB RDS for SQL Server のバージョン間の機能差」をご参照ください。

  • ハイブリッドログベース解析中、DTS はソースデータベースに次のオブジェクトを作成します:dts_cdc_sync_ddl トリガー、dts_sync_progress ハートビートテーブル、および dts_cdc_ddl_history DDL ストレージテーブル。これらは手動で削除できません。

  • 完全データ移行中、共有ロックが書き込み操作に影響を与えるのを避けるため、ソースデータベースで READ_COMMITTED_SNAPSHOT トランザクション分離レベルを有効にしてください。

  • 完全データ移行が完了した後、同時 INSERT 操作による断片化のため、宛先テーブルのストレージがソースよりも大きくなる場合があります。

  • ソースデータベースのバージョンが ApsaraDB RDS for SQL Server 2008 または 2008 R2 の場合、増分データ移行はサポートされていません。

移行タスクの設定

手順 1:ソースデータベースとターゲットデータベースの接続

  1. Data Transmission Service (DTS) コンソールに移動します。

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

  3. [タスクの作成] をクリックし、ソースデータベースとターゲットデータベースの接続を設定します。

    セクション パラメーター 説明
    — タスク名 識別しやすいように、わかりやすい名前を入力します。一意である必要はありません。
    ソースデータベース 既存の接続を選択 以前に DTS データ接続管理ページで接続詳細を保存した場合、ここで接続を選択すると手動入力をスキップできます。
    データベースタイプ [SQL Server] を選択します。
    アクセス方法 [クラウドインスタンス] を選択します。
    インスタンスリージョン ソースの ApsaraDB RDS for SQL Server インスタンスのリージョンを選択します。
    Alibaba Cloud アカウント間でのデータ複製 同じ Alibaba Cloud アカウント内のインスタンス間で移行する場合は、[いいえ] を選択します。
    RDS インスタンス ID ソースインスタンスの ID を選択します。
    データベースアカウント 必要な権限を持つソースインスタンスのデータベースアカウントを入力します。
    データベースパスワード データベースアカウントのパスワードを入力します。
    暗号化 SSL が有効でない場合は [非暗号化] を選択します。ソースデータベースで Secure Sockets Layer (SSL) が有効な場合は [SSL 暗号化] を選択します — DTS はデフォルトでサーバー証明書を信頼します。
    ターゲットデータベース 既存の接続を選択 以前に DTS データ接続管理ページで接続詳細を保存した場合、ここで接続を選択すると手動入力をスキップできます。
    データベースタイプ [SQL Server] を選択します。
    アクセス方法 [クラウドインスタンス] を選択します。
    インスタンスリージョン 宛先の ApsaraDB RDS for SQL Server インスタンスのリージョンを選択します。
    インスタンス ID 宛先インスタンスの ID を選択します。
    データベースアカウント 必要な権限を持つ宛先インスタンスのデータベースアカウントを入力します。
    データベースパスワード データベースアカウントのパスワードを入力します。
    暗号化 SSL が有効でない場合は [非暗号化] を選択します。宛先データベースで SSL が有効な場合は [SSL 暗号化] を選択します — DTS はデフォルトでサーバー証明書を信頼します。
  4. [接続をテストして続行] をクリックします。

    ソースデータベースとターゲットデータベースの両方のセキュリティ設定に、DTS サーバーの IP アドレス範囲が追加されていることを確認してください。 詳細については、「DTS サーバーの CIDR ブロックをセキュリティ設定に追加する」をご参照ください。

手順 2:移行するオブジェクトの選択

[オブジェクトの設定] ページで、移行設定を構成します。

パラメーター 説明
移行タイプ アプローチに合った移行タイプを選択します。完全移行の場合:[スキーマ移行] と [完全データ移行] を選択します。最小ダウンタイム移行の場合:[スキーマ移行]、[完全データ移行]、[増分データ移行] を選択します。
ソースデータベースのトリガーを移行する方法 要件に基づいてトリガー移行方法を選択します。移行するオブジェクトにトリガーが含まれていない場合は、これをスキップします。このパラメーターは、[スキーマ移行] と [増分データ移行] の両方が選択されている場合にのみ使用できます。
SQL Server 増分同期モード [増分データ移行] が選択されている場合にのみ使用できます。比較については、「増分同期モード」をご参照ください。
DTS がサポートする CDC が有効なテーブルの最大数 現在の移行インスタンスで CDC が有効なテーブルの最大数を設定します。デフォルト:1,000。同期モードが [ソースデータベースのログに基づく増分同期 (ヒープテーブルはサポートされていません)] の場合は使用できません。
競合するテーブルの処理モード [事前チェックしてエラーを報告] (デフォルト):DTS は、宛先でソースと同じ名前のテーブルをチェックします。競合が見つからない場合にのみタスクが開始されます。[エラーを無視して続行]:このチェックをスキップします。完全移行中、DTS は宛先の既存のレコードを保持し、競合するソースレコードをスキップします。増分移行中、新しいソースデータが宛先データを上書きし、データ損失を引き起こす可能性があります。注意して使用してください。
ソースオブジェクト 移行するオブジェクトを選択し、矢印アイコンをクリックして [選択したオブジェクト] に移動します。テーブルまたは列を選択すると、ビュー、トリガー、ストアドプロシージャなどの他のオブジェクトタイプは除外されます。
選択したオブジェクト 送信先の単一オブジェクトの名前を変更するには、そのオブジェクトを右クリックします。「単一オブジェクトの名前をマッピングする」をご参照ください。複数のオブジェクトの名前を変更するには、[一括編集] をクリックします。「複数のオブジェクト名を一度にマッピングする」をご参照ください。条件に基づいて行をフィルターするには、テーブルを右クリックして フィルター条件を設定します。
オブジェクトの名前を変更すると、依存オブジェクトの移行が失敗する可能性があります。

手順 3:詳細設定

[次へ:詳細設定] をクリックし、以下のオプションを設定します。

パラメーター 説明
タスクスケジューリング用の専用クラスター DTS はデフォルトで共有クラスターを使用します。安定性を高めるには、専用クラスターを購入してください。詳細については、「DTS 専用クラスターとは」をご参照ください。
接続失敗時の再試行時間 タスク開始後に DTS が失敗した接続を再試行する時間。有効な値:10~1,440 分。デフォルト:720。30 より大きい値を設定してください。再試行中、DTS インスタンスに対して課金されます。
その他の問題の再試行時間 DTS が失敗した DDL または DML 操作を再試行する時間。有効な値:1~1,440 分。デフォルト:10。10 より大きい値を設定してください。[接続失敗時の再試行時間] より小さい必要があります。
完全データ移行のスロットリングを有効化 完全データ移行中の読み取り/書き込みリソース使用量を制限して、データベースの負荷を軽減します。[ソースデータベースへの QPS (1 秒あたりのクエリ数)]、[完全データ移行の RPS]、[完全移行のデータ移行速度 (MB/s)] を設定します。[完全データ移行] が選択されている場合にのみ使用できます。
増分データ移行のスロットリングを有効化 増分移行中のリソース使用量を制限します。[増分データ移行の RPS] と [増分移行のデータ移行速度 (MB/s)] を設定します。[増分データ移行] が選択されている場合にのみ使用できます。
環境タグ 環境によって DTS インスタンスを識別するためのオプションのタグ。
ETL の設定 抽出・変換・書き出し (ETL) 処理を設定するには、[はい] を選択します。「データ移行またはデータ同期タスクで ETL を設定する」をご参照ください。スキップするには、[いいえ] を選択します。
モニタリングとアラート タスクが失敗した場合、またはレイテンシーがしきい値を超えた場合にアラートを受信するには、[はい] を選択し、アラートのしきい値と通知連絡先を設定します。「モニタリングとアラートの設定」をご参照ください。

手順 4:データ検証の設定 (オプション)

[次のステップ:データ検証] をクリックして、データ検証タスクを設定します。詳細については、「データ検証タスクの設定」をご参照ください。

手順 5:事前チェックの実行とインスタンスの購入

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

    このタスク設定の API パラメーターをプレビューするには、[次へ:タスク設定を保存して事前チェック] にカーソルを合わせ、[OpenAPI パラメーターのプレビュー] をクリックします。
  2. 事前チェックが完了するのを待ちます。いずれかの項目が失敗した場合は、[詳細の表示] をクリックし、問題をトラブルシューティングして、再度事前チェックを実行します。無視できるアラートがトリガーされた場合は、[アラート詳細の確認] > [無視] > [OK] をクリックし、次に [再度事前チェック] をクリックします。アラートを無視すると、データの不整合が生じる可能性があります。

  3. 成功率が 100% に達したら、[次へ: インスタンスの購入] をクリックします。

  4. [インスタンスの購入] ページで、インスタンスクラスを設定します。

    パラメーター 説明
    リソースグループ 移行インスタンスのリソースグループ。デフォルト:デフォルトリソースグループResource Management とは
    インスタンスクラス 必須の移行速度に基づいてインスタンスクラスを選択します。 詳細については、「データ移行インスタンスのインスタンスクラス」をご参照ください。
  5. [Data Transmission Service (従量課金) 利用規約] に同意し、[購入して開始] をクリックします。確認ダイアログで、[OK] をクリックします。

タスクのモニタリング

[データ移行] ページでタスクの進捗状況を表示します。

  • 増分データ移行のないタスクは、完了すると自動的に停止します。ステータスは [完了] と表示されます。

  • 増分データ移行のあるタスクは継続的に実行され、自動的には停止しません。ステータスは [実行中] と表示されます。

増分同期モード

このセクションは、移行タイプとして [増分データ移行] が選択されている場合に適用されます。

モード 利点 欠点 使用場面
ハイブリッドログベース解析 (非ヒープテーブルのログベース解析とヒープテーブルの CDC ベース増分同期) ヒープテーブル、プライマリキーのないテーブル、圧縮テーブル、計算列を持つテーブルをサポートします。より多様な DDL ステートメントを提供します。 DTS は、ソースデータベースに dts_cdc_sync_ddl トリガー、dts_sync_progress ハートビートテーブル、dts_cdc_ddl_history DDL ストレージテーブルを作成します。データベースレベルおよびテーブルレベルの CDC を有効にします。SELECT INTO、TRUNCATE、RENAME COLUMN は CDC 対応テーブルでは実行できません。DTS によって作成されたソースデータベースのトリガーは手動で削除できません。 ソーステーブルにヒープテーブル、プライマリキーのないテーブル、または圧縮テーブルや計算列テーブルが含まれる場合。サポートされるソースエディション:Enterprise または Enterprise Evaluation (2012, 2014, 2016, 2019, 2022)、Standard (2016, 2019, 2022)。
ソースデータベースのログに基づく増分同期 (ヒープテーブルはサポートされていません) ソースデータベースに変更は加えられません。 ヒープテーブル、プライマリキーのないテーブル、圧縮テーブル、または計算列を持つテーブルをサポートしません。 ソースが RDS for SQL Server の Web エディションである場合 (このモードは必須です)。ソーステーブルがすべての構造要件を満たしている場合。
増分同期のための 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 秒の遅延があります。多数のデータベースとテーブルを同時に移行すると、安定性とパフォーマンスの問題が発生する可能性があります。 ソースが Alibaba Cloud 以外のサードパーティクラウド SQL Server インスタンスである場合。

付録:増分移行でサポートされる SQL 操作

DML 操作

INSERT, UPDATE, DELETE

DTS は、ラージオブジェクト (LOB) フィールドのみを更新する UPDATE ステートメントを移行しません。

DDL 操作

  • ALTER TABLE — ADD COLUMN、DROP COLUMN、および RENAME COLUMN のみをサポート

  • CREATE TABLE、CREATE INDEX

    CREATE TABLE は、テーブル定義内のパーティションや関数をサポートしません。
  • DROP TABLE

  • RENAME TABLE

以下の DDL 操作は移行されません:
トランザクション DDL (単一ステートメント内の複数列 DDL または DDL と DML の組み合わせ) — データ損失が発生する可能性があります
ユーザー定義型を持つ DDL
オンライン DDL
予約キーワードを含む名前のオブジェクトに対する DDL
システムストアドプロシージャを介して実行される DDL
TRUNCATE TABLE