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

Data Transmission Service:自己管理 SQL Server データベースを ApsaraDB RDS for SQL Server に移行する

最終更新日:Feb 07, 2026

Data Transmission Service (DTS) は、自己管理 SQL Server データベースから ApsaraDB RDS for SQL Server へデータを移行します。

前提条件

  • 対応している自己管理 SQL Server データベースのバージョンについては、「移行ソリューション」をご参照ください。

  • 移行先の ApsaraDB RDS for SQL Server インスタンスを作成済みである必要があります。詳細については、「ApsaraDB RDS for SQL Server インスタンスの作成」をご参照ください。

  • ApsaraDB RDS for SQL Server インスタンスのストレージ容量は、自己管理 SQL Server データベースが使用しているストレージ容量より大きい必要があります。

  • ソースデータベースが以下のいずれかの条件を満たす場合、ApsaraDB RDS for SQL Server のバックアップ機能を使用してデータを移行してください。「自己管理データベースから ApsaraDB RDS インスタンスへのデータ移行」をご参照ください。

    • データベース数が 10 を超える。

    • 単一のデータベースに対して、1 時間あたり 1 回を超えるログバックアップが実行される。

    • 単一のデータベースに対して、1 時間あたり 100 回を超える DDL 操作が実行される。

    • 単一のデータベースのログ量が 20 MB/s を超える。

    • 変更データキャプチャ (CDC) を 1,000 表以上で有効化する必要がある。

    • ソースデータベースのログにヒープテーブル、プライマリキーのないテーブル、圧縮テーブル、または計算列を含むテーブルが含まれている。これらのテーブルがソースデータベースに存在するかどうかを確認するには、以下の SQL 文を実行します。

      1. ソースデータベース内のヒープテーブルを確認します。

        SELECT s.name AS schema_name, t.name AS table_name FROM sys.schemas s INNER JOIN sys.tables t ON s.schema_id = t.schema_id AND t.type = 'U' AND s.name NOT IN ('cdc', 'sys') AND t.name NOT IN ('systranschemas') AND t.object_id IN (SELECT object_id FROM sys.indexes WHERE index_id = 0);
      2. プライマリキーのないテーブルを確認します。

        SELECT s.name AS schema_name, t.name AS table_name FROM sys.schemas s INNER JOIN sys.tables t ON s.schema_id = t.schema_id AND t.type = 'U' AND s.name NOT IN ('cdc', 'sys') AND t.name NOT IN ('systranschemas') AND t.object_id NOT IN (SELECT parent_object_id FROM sys.objects WHERE type = 'PK');
      3. ソースデータベースのクラスター化インデックス列に含まれていないプライマリキー列を確認します。

        SELECT s.name schema_name, t.name table_name FROM sys.schemas s INNER JOIN sys.tables t ON s.schema_id = t.schema_id WHERE t.type = 'U' AND s.name NOT IN('cdc', 'sys') AND t.name NOT IN('systranschemas') AND t.object_id IN ( SELECT pk_colums_counter.object_id AS object_id FROM (select pk_colums.object_id, sum(pk_colums.column_id) column_id_counter from (select sic.object_id object_id, sic.column_id FROM sys.index_columns sic, sys.indexes sis WHERE sic.object_id = sis.object_id AND sic.index_id = sis.index_id AND sis.is_primary_key = 'true') pk_colums group by object_id) pk_colums_counter inner JOIN ( select cluster_colums.object_id, sum(cluster_colums.column_id) column_id_counter from (SELECT sic.object_id object_id, sic.column_id FROM sys.index_columns sic, sys.indexes sis WHERE sic.object_id = sis.object_id AND sic.index_id = sis.index_id AND sis.index_id = 1) cluster_colums group by object_id ) cluster_colums_counter ON pk_colums_counter.object_id = cluster_colums_counter.object_id and pk_colums_counter.column_id_counter != cluster_colums_counter.column_id_counter);
      4. ソースデータベース内の圧縮テーブルを確認します。

        SELECT s.name AS schema_name, t.name AS table_name FROM sys.objects t, sys.schemas s, sys.partitions p WHERE s.schema_id = t.schema_id AND t.type = 'U' AND s.name NOT IN ('cdc', 'sys') AND t.name NOT IN ('systranschemas') AND t.object_id = p.object_id AND p.data_compression != 0;
      5. 計算列を含むテーブルを確認します。

        SELECT s.name AS schema_name, t.name AS table_name FROM sys.schemas s INNER JOIN sys.tables t ON s.schema_id = t.schema_id AND t.type = 'U' AND s.name NOT IN ('cdc', 'sys') AND t.name NOT IN ('systranschemas') AND t.object_id IN (SELECT object_id FROM sys.columns WHERE is_computed = 1);
      6. スパース列を含むテーブルを確認します。

        SELECT s.name AS schema_name, t.name AS table_name FROM sys.schemas s INNER JOIN sys.tables t ON s.schema_id = t.schema_id AND t.type = 'U' AND s.name NOT IN ('cdc', 'sys') AND t.name NOT IN ('systranschemas') AND t.object_id IN (SELECT object_id FROM sys.columns WHERE is_sparse = 1);

注意事項

説明

DTS は、ソースデータベースからターゲットデータベースへ外部キーを移行しません。したがって、ソースデータベースにおけるカスケードおよび削除操作は、ターゲットデータベースへ移行されません。

種別

説明

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

  • 帯域幅要件:ソースデータベースをホストするサーバーは、十分なアウトバウンド帯域幅を確保している必要があります。そうでない場合、データ移行速度に影響が出ます。

  • 移行対象のテーブルには、プライマリキーまたは一意制約が必要であり、対応するフィールドは一意である必要があります。そうでない場合、ターゲットデータベースに重複データが発生する可能性があります。

  • テーブルレベルのオブジェクトを移行し、テーブル名や列名のマッピングなどの編集を行う場合、1 つのデータ移行タスクでは最大 1,000 表までサポートされます。この上限を超えると、タスク送信後にエラーが報告されます。その場合は、テーブルを複数の移行タスクに分割するか、タスクを設定してデータベース全体を移行してください。

  • 1 つのデータ移行タスクでは、最大 10 個のデータベースをサポートします。この上限を超えると、安定性およびパフォーマンスの問題が発生する可能性があります。その場合は、データベースを複数の移行タスクに分割してください。

  • データベース全体ではなく特定のオブジェクトのみを移行するタスクを設定する場合、スキーマ名が異なるにもかかわらず同名のテーブルを同一のターゲットデータベースに移行することはできません。

  • 増分移行の場合、データログは以下の要件を満たす必要があります。

    • ログが有効化されていること。バックアップモードは「完全」に設定されていること。完全な物理バックアップが正常に完了していること。

    • 増分移行タスクでは、Data Transmission Service (DTS) がソースデータベースのデータログを 24 時間以上保持することを要求します。完全移行と増分移行を含むタスクでは、DTS がソースデータベースのデータログを最低 7 日間保持することを要求します。完全移行が完了した後、ログ保持期間を 24 時間以上に変更できます。これを行わないと、DTS がデータログを取得できず、DTS タスクが失敗する可能性があります。極端なケースでは、データ不整合やデータ損失が発生する可能性があります。ログ保持期間が要件を下回る場合に生じる問題は、DTS のサービスレベルアグリーメント (SLA) の対象外です。

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

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

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

    • ソースデータベースが Enterprise Edition の場合、SQL Server 2008 以降である必要があります。

    • ソースデータベースが Standard Edition の場合、SQL Server 2016 SP1 以降である必要があります。

    • ソースデータベースが SQL Server 2017 (Standard Edition または Enterprise Edition) の場合、データベースのバージョンをアップグレードしてください。

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

  • ソースデータベースの操作に関する制限事項:

    • 初期スキーマ同期および完全なデータ移行中は、データベースまたはテーブルのスキーマを変更する DDL 操作を実行しないでください。そうしないと、データ移行タスクが失敗します。

    • 完全なデータ移行のみを実行する場合、ソースインスタンスに新規データを書き込まないでください。そうしないと、ソースデータベースとターゲットデータベース間でデータ不整合が発生します。リアルタイムのデータ整合性を保証するには、「初期スキーマ同期」「完全なデータ移行」「増分データ移行」を選択してください。

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

  • ソースデータベースが Azure SQL Database の場合、DTS インスタンスは 1 つのデータベースのみを移行できます。

  • ソースデータベースが ApsaraDB RDS for SQL Server インスタンスであり、移行タスクに増分移行が含まれる場合、DTS インスタンスの安定性を確保するために透過的データ暗号化 (TDE) を無効化してください。「TDE の無効化」をご参照ください。

  • 初期スキーマ同期タスクの実行前に、ソースデータベースでストアドプロシージャなどのオブジェクトを sp_rename コマンドで名前変更すると、タスクが期待通りに動作しない、または失敗する可能性があります。

    説明

    データベース内のオブジェクトの名前変更には、ALTER コマンドを使用してください。

  • ハイブリッドログ解析モードでは、ソースデータベースで 10 分未満の間隔で列の追加または削除を連続して実行することはできません。たとえば、以下の SQL 文を連続して実行すると、タスクでエラーが報告されます。

    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 増分同期モードソースデータベースのログに基づく増分同期 (ヒープテーブル非対応) に設定する必要があります。

  • 完全なデータ移行中は、ソースデータベースの READ_COMMITTED_SNAPSHOT トランザクション処理モードパラメーターが有効化されていることを確認してください。これにより、共有ロックによるデータ書き込みへの影響が防止されます。そうでない場合、データ不整合やインスタンス障害などの例外が発生する可能性があります。この問題によって引き起こされる例外は、DTS の SLA の対象外です。

その他の制限事項

  • CURSOR、ROWVERSION、SQL_VARIANT、HIERARCHYID、POLYGON、GEOMETRY、GEOGRAPHY データ型のデータは移行できません。

  • TIMESTAMP データ型のフィールドにターゲットデータベースへデータを書き込めない場合、DTS は完全移行および増分移行をサポートしません。これにより、データ不整合やタスク失敗が発生する可能性があります。

  • ソースデータベースからトリガーを移行するには、タスクで使用するデータベースアカウントがターゲットデータベースに対して Owner 権限を持っている必要があります。

  • ソースデータベースのログに基づく増分同期 (ヒープテーブル非対応)」を「SQL Server 増分同期モード」として「オブジェクト設定」ステップで選択した場合、移行対象のテーブルにはプライマリキー列を含むクラスター化インデックスが必要です。移行対象のテーブルは、ヒープテーブル、プライマリキーのないテーブル、圧縮テーブル、計算列を含むテーブル、またはスパース列を含むテーブルであってはなりません。混合ログ解析モードでは、これらの制限は適用されません。

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

    • DTS による増分移行は CDC コンポーネントに依存しています。ソースデータベースの CDC ジョブが実行中であることを確認してください。そうでない場合、DTS タスクが失敗します。

    • CDC コンポーネントに保存される増分データのデフォルト保持期間は 3 日間です。exec console.sys.sp_cdc_change_job @job_type = 'cleanup', @retention= <time>; コマンドを使用して、保持期間を調整することを推奨します。

      説明
      • <time> は、分単位の時間です。

      • ソースデータベースの単一テーブルにおける 1 日あたりの増分変更 SQL 文の数が 1,000 万を超える場合、<time> を 1440 に設定することを推奨します。

    • 1 つの移行タスクで、CDC を有効化するテーブル数は最大 1,000 表まで推奨します。これを超えると、タスクの遅延または不安定さが発生する可能性があります。

    • 増分移行タスクの前提モジュールは、ソースデータベースに対して CDC を有効化します。この処理中、SQL Server データベースカーネルの制限により、ソースデータベースが一時的にロックされる可能性があります。

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

    • DTS インスタンスが使用するソースデータベースアカウントは、CDC を有効化する権限を持っている必要があります。データベースレベルの CDC を有効化するには、sysadmin ロールを持つアカウントが必要です。テーブルレベルの CDC を有効化するには、特権アカウントが必要です。

      説明
      • Azure SQL Database コンソールで提供される特権アカウント(サーバー管理者)は要件を満たしており、vCore ベースのデータベースではすべてのインスタンスタイプが CDC をサポートします。DTU ベースのデータベースでは、S3 以降のインスタンスタイプのみが CDC をサポートします。

      • Amazon RDS for SQL Server の特権アカウントは要件を満たしており、ストアドプロシージャのデータベースレベル CDC を有効化するために使用できます。

      • クラスター化カラムストアインデックステーブルは CDC をサポートしません。

      • 増分移行タスクの前提モジュールは、ソースデータベースに対して CDC を有効化します。この処理中、SQL Server データベースカーネルの制限により、ソースデータベースが一時的にロックされる可能性があります。

    • DTS は、ソースデータベースの各テーブルの CDC インスタンスをポーリングして増分データを取得します。したがって、ソースデータベースから移行するテーブル数は最大 1,000 表まで推奨します。これを超えると、タスクの遅延または不安定さが発生する可能性があります。

    • CDC コンポーネントに保存される増分データのデフォルト保持期間は 3 日間です。exec console.sys.sp_cdc_change_job @job_type = 'cleanup', @retention= <time>; コマンドを使用して、保持期間を調整することを推奨します。

      説明
      • <time> は、分単位の時間です。

      • ソースデータベースの単一テーブルにおける 1 日あたりの増分変更 SQL 文の数が 1,000 万を超える場合、<time> を 1440 に設定することを推奨します。

    • 列の追加または削除を連続して実行することはできません。たとえば、1 分間に 2 回を超える DDL 操作(列の追加または削除)を実行すると、タスクが失敗する可能性があります。

    • ソースデータベースの 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 を有効化します。CDC が有効化されたソースデータベースのテーブルにおけるデータ変更率は、1 秒あたり 1,000 レコード (RPS) を超えないようにすることを推奨します。

  • データ移行を開始する前に、ソースおよびターゲットデータベースのパフォーマンスを評価してください。ピーク時間帯を避けてデータ移行を実行することを推奨します。そうしないと、完全なデータ移行中に DTS がソースおよびターゲットデータベースの読み取りおよび書き込みリソースを消費し、データベース負荷が増加する可能性があります。

  • 完全なデータ移行では、並列 INSERT 操作が実行されるため、ターゲットデータベースでテーブルの断片化が発生します。そのため、完全なデータ移行が完了した後、ターゲットデータベースのテーブルストレージ領域はソースインスタンスよりも大きくなります。

  • DTS が FLOAT および DOUBLE データ型の列に対して提供する移行精度が、お客様のビジネス要件を満たしているかどうかを確認してください。DTS はこれらの列の値を ROUND(COLUMN,PRECISION) を使用して読み取ります。精度を指定しない場合、DTS は FLOAT 値を精度 38、DOUBLE 値を精度 308 で移行します。

  • DTS は、失敗した移行タスクを 7 日間以内に再開しようと試みます。したがって、ビジネスをターゲットインスタンスに切り替える前に、タスクを終了またはリリースするか、DTS がターゲットインスタンスにアクセスするために使用するアカウントの書き込み権限を revoke コマンドで取り消す必要があります。これにより、タスクが自動的に再開された後にソースデータがターゲットインスタンスのデータを上書きするのを防ぎます。

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

    説明

    CDC が有効化されたテーブルのプライマリキーを変更することはできません。

  • 1 つの移行タスクで CDC を有効化するテーブル数が DTS がサポートする CDC が有効になっているテーブルの最大数の制限 を超える場合、事前チェックが失敗します。

  • タスクに増分移行が含まれ、CDC が有効化されたテーブルの単一フィールドに書き込まれるデータが 64 KB を超える場合、事前にソースデータベースの構成を exec sp_configure 'max text repl size', -1; コマンドで調整する必要があります。

    説明

    デフォルトでは、CDC ジョブは最大長 64 KB の単一フィールドを処理できます。

  • 増分移行の場合、ターゲットデータベースで有効化されたトリガーおよび外部キーを無効化してください。そうしないと、移行タスクが失敗します。

  • 複数の DTS インスタンスが同一の SQL Server データベースをソースとして使用する場合、それらの増分データ取り込みモジュールは相互に独立しています。

  • タスクが失敗した場合、DTS サポートスタッフが 8 時間以内に復旧を試みます。復旧中、タスクを再起動したり、パラメーターを調整したりすることがあります。

    説明

    データベースパラメーターではなく、DTS タスクパラメーターのみが変更されます。 調整可能なパラメーターの一覧については、「インスタンスパラメーターの変更」をご参照ください。

  • SQL Server は商用クローズドソースデータベースです。既知または未知のフォーマット固有の制限により、DTS が SQL Server ログに対して CDC および解析を実行する際に問題が発生する可能性があります。したがって、本番環境で SQL Server ソースの増分同期または移行を有効化する前に、包括的な概念実証 (POC) テストを実施することを推奨します。テストには、すべてのビジネスタイプの変更、テーブルスキーマの変更、およびビジネスのピーク時間帯における負荷テストを含める必要があります。SQL Server ログフォーマットの予測不能性により、本番環境のビジネスロジックが POC テストのものと一致していることを保証する必要があります。これは、DTS の高効率および高安定性を確保する上で鍵となる要素です。

特殊なケース

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

  • ターゲットインスタンスが ApsaraDB RDS for SQL Server インスタンスの場合、DTS はインスタンス内にデータベースを自動的に作成します。移行対象のデータベース名が ApsaraDB RDS for SQL Server の命名規則に準拠していない場合、移行タスクの設定前にターゲットインスタンスにデータベースを作成する必要があります。「データベースの作成」をご参照ください。

課金

移行タイプ

インスタンス構成料金

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

スキーマ移行および完全なデータ移行

無料です。

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

増分データ移行

課金対象です。「課金概要」をご参照ください。

移行タイプ

  • スキーマ移行

    DTS は、移行対象のスキーマ定義をソースデータベースからターゲットデータベースへ移行します。

    • スキーマ移行をサポートするオブジェクトには、テーブル、ビュー、テーブルトリガー、シノニム、SQL ストアドプロシージャ、SQL 関数、プランガイド、ユーザー定義型、ルール、デフォルト、シーケンスが含まれます。

    • スキーマ移行をサポートしないオブジェクトには、アセンブリ、サービスブローカー、フルテキストインデックス、フルテキストカタログ、分散スキーマ、分散関数、CLR ストアドプロシージャ、CLR スカラー関数、CLR テーブル値関数、内部テーブル、システムオブジェクト、集計関数が含まれます。

  • 完全移行

    DTS は、指定された移行対象のすべての既存データをソースデータベースからターゲットデータベースへ移行します。

  • 増分移行

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

増分移行をサポートする SQL 操作

操作タイプ

SQL 操作

DML

INSERT、UPDATE、DELETE

説明

ラージオブジェクトのみを更新する UPDATE 文は、増分移行ではサポートされていません。

DDL

  • CREATE TABLE

  • ALTER TABLE

    ADD COLUMN および DROP COLUMN のみを含む

  • DROP TABLE

  • CREATE INDEX、DROP INDEX

説明
  • トランザクション型 DDL 操作はサポートされていません。たとえば、1 つの SQL 文で複数の列を追加する DDL 操作や、1 つの SQL 文に DDL および DML 操作を混在させる操作は、データ損失を引き起こす可能性があります。

  • ユーザー定義型を含む DDL 操作はサポートされていません。

  • オンライン DDL 操作はサポートされていません。

  • 予約キーワードをプロパティ名として使用する DDL 操作はサポートされていません。

  • システムストアドプロシージャによって実行される DDL 操作はサポートされていません。

  • TRUNCATE TABLE 操作はサポートされていません。

  • パーティションおよび関数を含むテーブル定義はサポートされていません。

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

データベース

スキーマ移行

完全移行

増分移行

自己管理 SQL Server データベース

SELECT 権限

SELECT 権限

sysadmin

RDS for SQL Server インスタンス

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

データベースアカウントの作成および権限付与手順は以下のとおりです。

データ移行プロセス

オブジェクトの依存関係を解決し、移行成功率を向上させるため、DTS は SQL Server のスキーマおよびデータを以下の順序で移行します。

  1. テーブル、ビュー、シノニム、ユーザー定義型、ルール、デフォルト、プランガイドのスキーマ移行を実行します。

  2. 完全なデータ移行を実行します。

  3. SQL ストアドプロシージャ、SQL 関数、トリガー、外部キーのスキーマ移行を実行します。

  4. 増分データ移行を実行します。

事前準備

説明

増分移行を実行するには、データ移行タスクの設定前に、自己管理 SQL Server データベースのトランザクションログ設定を構成し、クラスター化インデックスを作成してください。

重要

複数のデータベースを移行するには、このセクションの手順 1 ~ 3 を繰り返してください。そうしないと、データ不整合が発生する可能性があります。

  1. 自己管理 SQL Server データベースで、移行対象データベースの復元モードを完全復元モードに設定するには、以下のコマンドを実行します。

    use master;
    GO
    ALTER DATABASE <database_name> SET RECOVERY FULL WITH ROLLBACK IMMEDIATE;
    GO

    パラメーター:

    <database_name>:移行対象のデータベース名。

    例:

    use master;
    GO
    ALTER DATABASE mytestdata SET RECOVERY FULL WITH ROLLBACK IMMEDIATE;
    GO
  2. 移行対象データベースの論理バックアップを実行するには、以下のコマンドを実行します。論理バックアップがすでに実行済みの場合は、この手順をスキップしてください。

    BACKUP DATABASE <database_name> TO DISK='<physical_backup_device_name>';
    GO

    パラメーター:

    • <database_name>:移行対象のデータベース名。

    • <physical_backup_device_name>:バックアップファイルのパスおよびファイル名。

    例:

    BACKUP DATABASE mytestdata TO DISK='D:\backup\dbdata.bak';
    GO
  3. 移行対象データベースのトランザクションログをバックアップするには、以下のコマンドを実行します。

    BACKUP LOG <database_name> to DISK='<physical_backup_device_name>' WITH init;
    GO

    パラメーター:

    • <database_name>:移行対象のデータベース名。

    • <physical_backup_device_name>:バックアップファイルのパスおよびファイル名。

    例:

    BACKUP LOG mytestdata TO DISK='D:\backup\dblog.bak' WITH init;
    GO

操作手順

  1. 以下のいずれかの方法で、ターゲットリージョンの移行タスク一覧ページに移動します。

    DTS コンソールから

    1. Data Transmission Service (DTS) コンソール にログインします。

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

    3. ページの左上隅で、移行インスタンスが配置されているリージョンを選択します。

    DMS コンソールから

    説明

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

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

    2. トップメニューで、Data + AI > Data Transmission (DTS) > Data Migration の順に選択します。

    3. データ移行タスク の右側で、移行インスタンスが配置されているリージョンを選択します。

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

  3. ソースおよびターゲットデータベースを構成します。

    警告

    ソースおよびターゲットインスタンスを選択した後、ページ上部に表示される制限事項をよくお読みになることを推奨します。そうしないと、タスクが失敗したり、データ不整合が発生したりする可能性があります。

    カテゴリ

    構成

    説明

    なし

    タスク名

    DTS がタスク名を自動生成します。識別しやすいように、説明的な名前を指定することを推奨します。名前は一意である必要はありません。

    ソースデータベース情報

    既存の接続情報の選択

    • システムに追加済み(作成または保存済み)のデータベースインスタンスを使用するには、ドロップダウンリストから目的のデータベースインスタンスを選択します。以下に示すデータベース情報は自動的に構成されます。

      説明

      DMS コンソールでは、このパラメーターは DMS データベースインスタンスの選択 と呼ばれます。

    • データベースインスタンスをシステムに登録していない場合、または登録済みのインスタンスを使用する必要がない場合は、以下に示すデータベース情報を手動で構成してください。

    データベースタイプ

    SQL Server を選択します。

    アクセス方法

    パブリック IP を選択します。

    説明

    自己管理データベースを選択する場合、対応する事前準備も実施する必要があります。「事前準備の概要」をご参照ください。

    インスタンスリージョン

    自己管理 SQL Server データベースが配置されているリージョンを選択します。

    ホスト名または IP アドレス

    自己管理 SQL Server データベースのエンドポイントを入力します。この例では、パブリックエンドポイントを入力します。

    ポート

    自己管理 SQL Server データベースのサービスポートを入力します。デフォルトポートは 1433 です。

    データベースアカウント

    自己管理 SQL Server データベースのデータベースアカウントを入力します。必要な権限については、「データベースアカウントに必要な権限」をご参照ください。

    データベースパスワード

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

    暗号化

    環境に応じて、非暗号化 または SSL 暗号化 を選択します。

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

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

    ターゲットデータベース情報

    既存の接続情報の選択

    • システムに追加済み(作成または保存済み)のデータベースインスタンスを使用するには、ドロップダウンリストから目的のデータベースインスタンスを選択します。以下に示すデータベース情報は自動的に構成されます。

      説明

      DMS コンソールでは、このパラメーターは DMS データベースインスタンスの選択 と呼ばれます。

    • データベースインスタンスをシステムに登録していない場合、または登録済みのインスタンスを使用する必要がない場合は、以下に示すデータベース情報を手動で構成してください。

    データベースタイプ

    SQL Server を選択します。

    アクセス方法

    クラウドインスタンス を選択します。

    インスタンスリージョン

    ターゲット ApsaraDB RDS for SQL Server インスタンスが配置されているリージョンを選択します。

    インスタンス ID

    ターゲット ApsaraDB RDS for SQL Server インスタンスの ID を選択します。

    データベースアカウント

    ターゲット ApsaraDB RDS for SQL Server インスタンスのデータベースアカウントを入力します。必要な権限については、「データベースアカウントに必要な権限」をご参照ください。

    データベースパスワード

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

    暗号化

    環境に応じて、非暗号化 または SSL 暗号化 を選択します。

    • ターゲットデータベースで SSL 暗号化が無効化されている場合、非暗号化 を選択します。

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

  4. 構成を完了した後、ページ下部の 接続をテストして続行 をクリックします。表示される DTS サーバーの CIDR ブロック ダイアログボックスで、接続テスト をクリックします。

    説明

    DTS サービスの IP アドレス範囲が、ソースおよびターゲットデータベースのセキュリティ設定に自動または手動で追加され、DTS サーバーからのアクセスが許可されていることを確認してください。「DTS サーバー IP アドレスをホワイトリストに追加」をご参照ください。

  5. タスクオブジェクトを構成します。

    1. オブジェクト設定 ページで、移行対象のオブジェクトを構成します。

      構成

      説明

      移行タイプ

      • 完全移行のみを実行する場合、スキーマ移行 および 完全データ移行 の両方を選択します。

      • ダウンタイムなしで移行を実行する場合、スキーマ移行完全データ移行、および 増分データ移行 を選択します。

      説明
      • スキーマ移行 を選択しない場合、ターゲットデータベースにデータを受信するデータベースおよびテーブルが存在することを確認する必要があります。また、必要に応じて、選択中のオブジェクト ボックス内のオブジェクト名マッピング機能を使用できます。

      • 増分データ移行 を選択しない場合、データ移行中にソースインスタンスに新規データを書き込まないでください。これにより、データ整合性が保証されます。

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

      必要に応じて、トリガーの移行方法を選択します。トリガーが関係しない場合は、この設定をスキップできます。「トリガーの同期または移行方法の構成」をご参照ください。

      説明

      このオプションは、移行タイプスキーマ移行 および 増分データ移行 の両方が含まれている場合にのみ利用可能です。

      SQL Server 増分同期モード

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

        • 利点:

          • ソースのヒープテーブル、プライマリキーのないテーブル、圧縮テーブル、または計算列を含むテーブルを伴うシナリオをサポートします。

          • 高いリンク安定性を提供します。このモードでは、完全な DDL 文を取得でき、幅広い DDL シナリオをサポートします。

        • 欠点:

          • DTS はソースデータベースに dts_cdc_sync_ddl トリガー、dts_sync_progress ハートビートテーブル、および dts_cdc_ddl_history DDL ストレージテーブルを作成します。また、データベースレベルの CDC および一部のテーブルの CDC を有効化します。

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

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

        • 利点:

          このモードは、ソースデータベースに対して非侵入型です。

        • 欠点:

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

      • 増分同期のための 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 秒の遅延があります。

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

      説明

      この設定は、移行タイプ増分データ移行 が含まれている場合にのみ表示されます。

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

      この移行インスタンスで CDC を有効化できるテーブルの最大数を指定します。デフォルト値は 1,000 です。

      説明

      SQL Server 増分同期モードソースデータベースのログに基づく増分同期 (ヒープテーブル非対応) に設定した場合、このオプションは表示されません。

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

      • エラーの事前チェックと報告:ターゲットデータベースに同名のテーブルが存在するかどうかをチェックします。同名のテーブルが存在しない場合、事前チェックは合格となります。同名のテーブルが存在する場合、事前チェックでエラーが報告され、データ移行タスクは開始されません。

        説明

        ターゲットデータベースのテーブルが同名であるものの、簡単に削除または名前変更できない場合、ターゲットデータベースのテーブル名を変更できます。「オブジェクト名マッピング」をご参照ください。

      • エラーを無視して続行:同名のテーブルのチェックをスキップします。

        警告

        エラーを無視して続行 を選択すると、データ不整合およびビジネスリスクが発生する可能性があります。たとえば:

        • テーブルスキーマが一致し、ターゲットデータベースのレコードとソースデータベースのレコードが同じプライマリキー値を持つ場合:

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

          • 増分移行中、DTS はターゲットデータベースのレコードを保持しません。ソースデータベースのレコードがターゲットデータベースのレコードを上書きします。

        • テーブルスキーマが一致しない場合、一部の列のデータのみが移行されるか、移行が失敗する可能性があります。慎重に進めてください。

      ソースオブジェクト

      ソースオブジェクト ボックスで、移行対象のオブジェクトをクリックし、Right arrow をクリックして 選択中のオブジェクト ボックスに移動します。

      説明

      移行オブジェクトの粒度は、スキーマ、テーブル、および列です。テーブルまたは列のみを移行オブジェクトとして選択した場合、ビュー、トリガー、ストアドプロシージャなどの他のオブジェクトはターゲットデータベースに移行されません。

      選択中のオブジェクト

      • 移行対象のオブジェクトをターゲットインスタンスに名前変更するには、選択されたオブジェクト セクションで該当オブジェクトを右クリックします。「個別のテーブル列マッピング」をご参照ください。

      • 複数のオブジェクトを一度に名前変更するには、一括編集選択されたオブジェクト セクションの右上隅でクリックします。「複数のオブジェクト名を一度にマッピング」をご参照ください。

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

      • WHERE 句を使用してデータをフィルターするには、選択中のオブジェクト ボックスで移行対象のテーブルを右クリックし、ダイアログボックスでフィルター条件を設定します。手順については、「フィルター条件の構成」をご参照ください。

      • データベースまたはテーブルレベルで移行する SQL 操作を選択するには、選択中のオブジェクト ボックスで移行オブジェクトを右クリックし、ダイアログボックスで目的の操作を選択します。

    2. 詳細設定へ をクリックして、高度なパラメーターを構成します。

      構成

      説明

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

      デフォルトでは、DTS が共有クラスターでタスクをスケジュールします。選択する必要はありません。より安定したタスクを希望する場合は、専用クラスター を購入して DTS 移行タスクを実行できます。

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

      移行タスクが開始された後、ソースまたはターゲットデータベースへの接続が失敗した場合、DTS はエラーを報告し、直ちに接続のリトライを開始します。デフォルトのリトライ期間は 720 分です。リトライ時間を 10 分から 1440 分の間でカスタマイズできます。30 分以上に設定することを推奨します。指定された期間内に DTS がソースおよびターゲットデータベースへの再接続に成功した場合、移行タスクは自動的に再開されます。そうでない場合、タスクは失敗します。

      説明
      • 同一のソースまたはターゲットを共有する複数の DTS インスタンスの場合、ネットワークリトライ時間は最後に作成されたタスクの設定によって決定されます。

      • 接続リトライ期間中もタスクに対して課金されるため、ビジネス要件に応じてリトライ時間をカスタマイズするか、ソースおよびターゲットデータベースインスタンスが解放された直後に DTS インスタンスを解放することを推奨します。

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

      移行タスクが開始された後、ソースまたはターゲットデータベースで DDL または DML 実行例外など、接続以外の問題が発生した場合、DTS はエラーを報告し、直ちに操作のリトライを開始します。デフォルトのリトライ期間は 10 分です。リトライ時間を 1 分から 1440 分の間でカスタマイズできます。10 分以上に設定することを推奨します。指定されたリトライ期間内に関連する操作が成功した場合、移行タスクは自動的に再開されます。そうでない場合、タスクは失敗します。

      重要

      移行元データベースと移行先データベースで他の問題が発生した場合の、再試行までの待機時間です。 の値は、失敗した接続の再試行時間 の値より小さくする必要があります。

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

      完全移行中、DTS はソースおよびターゲットデータベースの読み取りおよび書き込みリソースを消費するため、データベース負荷が増加する可能性があります。必要に応じて、完全移行タスクの速度制限を有効化できます。1 秒あたりのソースデータベースのクエリ率 QPS1 秒あたりの完全移行の行数 RPS、および 1 秒あたりの完全移行データ量 (MB) BPS を設定して、ターゲットデータベースの負荷を軽減できます。

      説明
      • この設定項目は、完全データ移行移行タイプ として選択した場合にのみ利用可能です。

      • 移行インスタンスが実行中の状態でも、完全移行速度の調整 が可能です。

      増分移行率を制限するかどうか

      必要に応じて、増分移行タスクの速度制限も設定できます。1 秒あたりの増分移行の行数 RPS および 1 秒あたりの増分移行データ量 (MB) BPS を設定して、ターゲットデータベースの負荷を軽減できます。

      説明
      • この設定項目は、増分データ移行移行タイプ として選択した場合にのみ利用可能です。

      • 移行インスタンスが実行中の状態でも、増分移行速度の調整 が可能です。

      環境タグ

      必要に応じて、インスタンスを識別する環境タグを選択できます。この例では、選択は不要です。

      ETL 機能の設定

      抽出・変換・書き出し (ETL) 機能を有効化するかどうかを選択します。「ETL とは?」をご参照ください。有効な値は以下のとおりです。

      監視アラート

      ビジネス要件に応じて、アラートの設定およびアラート通知の受信を選択できます。

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

      • :アラートを設定するには、アラートしきい値 および アラート通知 を設定します。移行が失敗した場合や、遅延がしきい値を超えた場合、システムからアラート通知が送信されます。

    3. 次へ:データ検証 をクリックして、データ検証タスクを構成します。

      データ検証機能の詳細については、「データ検証の構成」をご参照ください。

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

    • API 操作を呼び出すときにこのインスタンスを構成するパラメーターを表示するには、次:タスク設定の保存と事前チェック ボタンにポインターを合わせ、表示される吹き出しで OpenAPI パラメーターのプレビュー をクリックします。

    • API パラメーターの表示が不要な場合、または表示を終了した場合は、ページ下部の 次:タスク設定の保存と事前チェック をクリックします。

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

    • 事前チェックが失敗した場合、失敗したチェック項目の横にある 詳細を表示 をクリックし、プロンプトに従って問題を修正してから、再度事前チェックを実行してください。

    • 事前チェック中に警告が報告された場合:

      • 無視できないチェック項目については、失敗した項目の横にある 詳細を表示 をクリックし、プロンプトに従って問題を修正してから、再度事前チェックを実行してください。

      • 無視できるチェック項目については、アラートの詳細を確認無視OK、および 再度事前チェックを実行 をクリックして、警告項目を無視して再度事前チェックを実行できます。警告を無視すると、データ不整合などの問題が発生し、ビジネスにリスクを及ぼす可能性があります。

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

    1. 成功率 が 100 % の場合、次:インスタンスの購入 をクリックします。

    2. 購入 ページで、データ移行インスタンスのリンク仕様を選択します。以下の表をご参照ください。

      カテゴリ

      パラメーター

      説明

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

      リソースグループの設定

      インスタンスが所属するリソースグループを選択します。デフォルト値はデフォルトリソースグループです。「Resource Management とは?」をご参照ください。

      インスタンスクラス

      DTS は、さまざまなパフォーマンスレベルの移行仕様を提供します。リンク仕様は移行速度に影響します。ビジネスシナリオに応じて仕様を選択できます。「データ移行リンク仕様」をご参照ください。

    3. 構成が完了したら、「Data Transmission Service (従量課金) 利用規約」を読み、チェックしてください。

    4. 購入して起動 をクリックします。表示される OK ダイアログボックスで、OK をクリックします。

      移行タスクの進行状況は、データ移行タスク 一覧ページで確認できます。

      説明
      • 移行タスクに増分移行が含まれない場合、完全移行が完了すると自動的に停止します。タスクが停止した後、その ステータス完了 に変わります。

      • 移行タスクに増分移行が含まれる場合、タスクは自動的に停止しません。増分移行タスクは継続して実行されます。増分移行タスクが実行中の間、タスクの ステータス実行中 になります。