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

ApsaraDB RDS:SQL ServerデータベースをAlibaba Cloudに移行する

最終更新日:Dec 13, 2024

このトピックでは、SQL ServerデータベースをAlibaba Cloudに移行するための一般的なソリューションについて説明します。 データソースの場所、各ソリューションで使用されるツール、および各ソリューションの利点と制限に基づいて、ソリューションを選択できます。

準備

  • 移行先ApsaraDB RDS for SQL Serverインスタンスが作成されました。 ターゲットインスタンスの仕様とストレージ容量は、ソースデータベースの仕様とストレージ容量以上です。 詳細については、「ApsaraDB RDS For SQL Serverインスタンスの作成」をご参照ください。

    説明

    Data Transmission Service (DTS) を使用してデータ移行タスクを設定する場合は、ソースデータベースとターゲットデータベースのバージョンがDTSでサポートされていることを確認してください。 詳細については、「データ移行シナリオの概要」をご参照ください。

  • ソースデータベースとターゲットデータベースの両方でSELECT name, compatibility_level FROM sys.databases; ステートメントを実行して、ターゲットデータベースがソースデータベースと互換性があるかどうかを確認します。 詳細については、次をご参照ください: ALTER DATABASE (Transact-SQL) 互換性レベル

  • 移行元データベースと移行先データベースのファイアウォールルール、ホワイトリスト、セキュリティグループなどのセキュリティ設定が、データ移行ツールからのアクセス要求を制限しないようにしてください。

    説明

    DTSを使用してデータ移行タスクを設定する場合は、DTSがソースデータベースとターゲットデータベースにアクセスできることを確認してください。 詳細については、「DTSサーバーのCIDRブロックの追加」をご参照ください。

クラウド移行ソリューション

解決策

手順

関連ドキュメント

物理バックアップファイルに基づくクラウド移行

OSS (Object Storage Service) を使用してデータを手動で移行する

  1. ソースデータベースのbackup_typeパラメーターをFULLに設定します。

  2. 完全なデータをバックアップし、バックアップデータをOSSバケットにアップロードします。

  3. 増分ログを定期的にバックアップおよびアップロードします。

  4. ソースデータベースへのデータの書き込みを停止します。 最後の増分ログが正常に再生されたら、ワークロードを新しいデータベースに切り替えます。

セルフマネージドSQL ServerインスタンスからApsaraDB RDS for SQL Serverインスタンスへのデータの移行

説明

ソースデータベースがSQL Server 2008 R2を実行している場合は、操作を実行する前にデータベースのバージョンをアップグレードすることをお勧めします。

数回のクリックでデータベースバックアップ (DBS) とDTSを使用してデータを移行する

  1. 物理プロトコルゲートウェイを展開します。

  2. DTSを使用してデータをクラウドに移行します。 システムはOSSのAPIを呼び出して、バックアップデータをOSSバケットにアップロードします。

  3. ソースデータベースへのデータの書き込みを停止します。 最後の増分ログが正常に再生されたら、ワークロードを新しいデータベースに切り替えます。

物理ゲートウェイを使用して、自己管理型SQL ServerデータベースからApsaraDB RDS for SQL Serverインスタンスにデータを移行する

論理クラウド移行

DTSを使用してログ解析モードでデータを移行する

  1. DTSを使用してデータをクラウドに移行します。

    説明

    SQL Server 増分同期モード パラメーターを ソースデータベースのログに基づく増分同期 (ヒープテーブル非対応) に設定します。

  2. ソースデータベースへのデータの書き込みを停止します。 最後の増分ログが正常に再生されたら、ワークロードを新しいデータベースに切り替えます。

自己管理型SQL ServerデータベースからApsaraDB RDS for SQL Serverインスタンスへのデータの移行

DTSを使用したハイブリッドログ解析モードでのデータ移行

  1. DTSを使用してデータをクラウドに移行します。

    説明

    SQL Server 増分同期モード パラメーターを クラスター化テーブルはログ解析で増分同期し、ヒープテーブルの場合は CDC で増分同期します (ハイブリッド式ログ解析) に設定します。

  2. ソースデータベースへのデータの書き込みを停止します。 最後の増分ログが正常に再生されたら、ワークロードを新しいデータベースに切り替えます。

変更データキャプチャ (CDC) インスタンスのポーリングおよびクエリモードでDTSを使用してデータを移行する

  1. DTSを使用してデータをクラウドに移行します。

    説明

    SQL Server 増分同期モード パラメーターを 増分同期のための CDC インスタンスのポーリングとクエリ に設定します。

  2. ソースデータベースへのデータの書き込みを停止します。 最後の増分ログが正常に再生されたら、ワークロードを新しいデータベースに切り替えます。

その他

SQL Server Management Studio (SSMS) を使用したデータの移行

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

  2. SSMSを使用して、ソースデータベースのデータをエクスポートします。

  3. SSMSを使用して、エクスポートされたデータをターゲットデータベースにインポートします。

  4. データの整合性が確認されたら、ワークロードを新しいデータベースに切り替えます。

SSMSを使用したデータのクラウドへの移行

クラウド移行ソリューションの比較

解決策

メリット

制限事項

物理バックアップファイルに基づくクラウド移行

OSSを使用してデータを手動で移行する

  • SQL Serverが提供するバックアップおよびリカバリ機能は、多数のシナリオをサポートします。

  • 移行速度は速いです。

  • ソースデータベースのログファイル名の形式に基づいて、バックアップファイルの名前を手動で変更できます。

  • 手動でログをバックアップしてアップロードする必要がありますが、これは面倒です。

  • 一度に移行できるデータベースは1つだけです。

  • ソースデータベースへのデータの書き込みを停止し、最後の増分ログが正常に再生されるまで待ってから、ワークロードを新しいデータベースに切り替える必要があります。 したがって、サービスは数分間中断される可能性があります。

  • ターゲットデータベースのバージョンは、ソースデータベースのバージョンより前にすることはできません。

  • データベース、テーブル、および列の名前マッピング機能はサポートされていません。

DBSとDTSを使用して数回クリックするだけでデータを移行する

  • 移行操作はDTSコンソールで実行されます。 構成と操作はシンプルで便利です。

  • 一度に複数のデータベースを移行できます。

  • SQL Serverが提供するバックアップおよびリカバリ機能は、多数のシナリオをサポートします。

  • 移行速度は速いです。

  • バックアップログファイル名の拡張子はbakである必要があります。

  • ソースデータベースへのデータの書き込みを停止し、最後の増分ログが正常に再生されるまで待ってから、ワークロードを新しいデータベースに切り替える必要があります。 したがって、サービスは数分間中断される可能性があります。

  • ソースデータベースのサーバーにAliyunDBSAgentをインストールする必要があります。

  • ターゲットデータベースのバージョンは、ソースデータベースのバージョンより前にすることはできません。

  • データベース、テーブル、および列の名前マッピング機能はサポートされていません。

論理クラウド移行

DTSを使用してログ解析モードでデータを移行する

  • 移行操作はDTSコンソールで実行されます。 構成と操作はシンプルで便利です。

  • 異なるバージョンのデータベース間でデータを移行できます。

  • データベース、テーブル、および列の名前マッピング機能がサポートされています。

  • DTSを使用して増分データを移行する場合、ソースデータベースへのデータの書き込みを停止する必要はありません。 サービス継続性が保証される。

  • サードパーティのクラウドプラットフォームからAlibaba cloudにデータを移行できます。

    たとえば、完全なデータをAmazon RDS For SQL ServerからAlibaba Cloudに移行し、完全なデータと増分データをNoSQLモードのMicrosoft Azure SQL DatabaseからAlibaba Cloudに移行できます。

  • 一部のDDL文のみを移行できます。 1時間に100を超えるDDLステートメントが実行されると、移行速度が影響を受けます。

  • ソースデータベースへのログ書き込み速度が10メガバイト/秒、30 GB /時間、または500 GB /日を超えると、タスクが遅延するか、失敗する可能性があります。

  • ソースデータベースのログバックアップの頻度が1時間に1回を超えると、DTSはローカルバックアップログの取得に失敗する可能性があります。 バックアップログをローカルディスクに3日間保持することを推奨します。

  • DTSは、DDLの変更をキャプチャするために、ソースデータベースにトリガーとDDLストレージテーブルを作成します。

  • 増分データ移行中は、FOREIGN KEY制約を無効にする必要があります。 そうしないと、タスクが失敗する可能性があります。

  • ヒープテーブル、主キーのないテーブル、圧縮テーブル、および計算列を含むテーブルは移行できません。

    説明

    SQL Serverデータベースにこれらのテーブルが含まれているかどうかを確認する方法については、ヒープテーブル、主キーのないテーブル、圧縮テーブル、およびSQL Serverデータベースの計算列を含むテーブルに関する情報を表示するにはどうすればよいですか。 FAQトピックのセクション。

  • PRIMARY KEYまたはUNIQUE制約のないテーブルは、重複データを含み得る。 PRIMARY KEYまたはUNIQUE制約なしでテーブルを保持する場合は、このソリューションを使用しないことを推奨します。

  • DTSはfn_log関数を使用してログをプルおよび解析します。 この機能は安定していません。 予期しない操作が発生した場合、タスクは失敗する可能性があります。

  • 1回のデータ移行タスクで移行できるデータベースは10個以下です。 そうしないと、安定性とパフォーマンスの問題が発生します。

DTSを使用したハイブリッドログ解析モードでのデータ移行

  • 移行操作はDTSコンソールで実行されます。 構成と操作はシンプルで便利です。

  • 異なるバージョンのデータベース間でデータを移行できます。

  • データベース、テーブル、および列の名前マッピング機能がサポートされています。

  • ヒープテーブル、プライマリキーのないテーブル、および圧縮テーブルを移行できます。

  • サードパーティのクラウドプラットフォームからAlibaba cloudにデータを移行できます。

    たとえば、完全なデータをAmazon RDS For SQL ServerからAlibaba Cloudに移行し、完全なデータと増分データをNoSQLモードのMicrosoft Azure SQL DatabaseからAlibaba Cloudに移行できます。

  • ソースSQL Serverデータベースは、Enterprise EditionのSQL Server 2008以降、またはStandard EditionのSQL Server 2016 SP1以降 (SQL Server 2017を除く) である必要があります。

  • 一部のDDL文のみを移行できます。 1時間に100を超えるDDLステートメントが実行されると、移行速度が影響を受けます。

  • ソースデータベースへのログ書き込み速度が10メガバイト/秒、30 GB /時間、または500 GB /日を超えると、タスクが遅延するか、失敗する可能性があります。

  • ソースデータベースのログバックアップの頻度が1時間に1回を超えると、DTSはローカルバックアップログの取得に失敗する可能性があります。 バックアップログをローカルディスクに3日間保持することを推奨します。

  • DTSはデータベースと一部のテーブルのCDCを有効にし、ソースデータベースにトリガーとDDLストレージテーブルを作成してDDLの変更をキャプチャします。

  • 増分データ移行中は、FOREIGN KEY制約を無効にする必要があります。 そうしないと、タスクが失敗する可能性があります。

  • 計算列を含むテーブルは移行できません。

    説明

    SQL Serverデータベースにこれらのテーブルが含まれているかどうかを確認する方法については、ヒープテーブル、主キーのないテーブル、圧縮テーブル、およびSQL Serverデータベースの計算列を含むテーブルに関する情報を表示するにはどうすればよいですか。 FAQトピックのセクション。

  • PRIMARY KEYまたはUNIQUE制約のないテーブルは、重複データを含み得る。 PRIMARY KEYまたはUNIQUE制約なしでテーブルを保持する場合は、このソリューションを使用しないことを推奨します。

  • DTSはfn_log関数を使用してログをプルおよび解析します。 この機能は安定していません。 予期しない操作が発生した場合、タスクは失敗する可能性があります。

  • 1回のデータ移行タスクで移行できるデータベースは10個以下です。 そうしないと、安定性とパフォーマンスの問題が発生します。

DTSを使用してCDCインスタンスのポーリングおよびクエリモードでデータを移行する

  • 移行操作はDTSコンソールで実行されます。 構成と操作はシンプルで便利です。

  • 異なるバージョンのデータベース間でデータを移行できます。

  • データベース、テーブル、および列の名前マッピング機能がサポートされています。

  • サードパーティのクラウドプラットフォームからAlibaba cloudにデータを移行できます。

    たとえば、Amazon RDS For SQL Server、Microsoft Azure SQL Database、またはGoogle Cloud SQL for SQL ServerからAlibaba Cloudに完全データと増分データを移行できます。

  • 増分データ移行はより安定しており、ネットワーク帯域幅の消費も少なくなります。

    SQL ServerのネイティブCDCコンポーネントを使用して増分データを取得する場合、ソースデータベースのトランザクションログからデータをキャプチャする必要はありません。 ソースデータベースでのログの切り捨ては、DTSインスタンスには影響しません。

  • ソースデータベースがSQL Server Enterprise Editionを実行するMicrosoft Azure VMの場合、そのバージョンはSQL Server 2008以降である必要があります。 ソースデータベースがSQL Server Standard Editionを実行するMicrosoft Azure VMの場合、そのバージョンはSQL Server 2016 SP1以降である必要があります。 SQL Server 2017はサポートされていません。

  • DTSがソースデータベースへのアクセスに使用するアカウントには、データベースレベルおよびテーブルレベルのCDCを有効にする権限が必要です。 データベースレベルのCDCを有効にするには、sysadminロールが割り当てられているアカウントが必要です。 テーブルレベルのCDCを有効にするには、特権アカウントが必要です。

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

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

  • DTSタスクを実行して、ソースデータベースから1,000を超えるテーブルを移行することはできません。 そうしないと、タスクが遅延または不安定になる可能性があります。

  • 1回のデータ移行タスクで移行できるデータベースは10個以下です。 そうしないと、安定性とパフォーマンスの問題が発生します。

  • PRIMARY KEYまたはUNIQUE制約のないテーブルは、重複データを含み得る。 PRIMARY KEYまたはUNIQUE制約なしでテーブルを保持する場合は、このソリューションを使用しないことを推奨します。

  • 増分データ移行のレイテンシは約10秒です。

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

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

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

その他

SSMSを使用したデータの移行

操作は簡単で、プロセスは安定しており、データの不一致のリスクは低いです。

  • ソースデータベースへのデータの書き込みを停止する必要があります。 DDL 操作を実行すると、データの不整合が発生する可能性があります。

  • SSMSを使用して手動で移行を実行する必要があります。

クラウド移行ソリューションの選択

重要

データソースが増分データ移行をサポートしていない場合は、データをクラウドに移行する前に、ソースデータベースへのデータの書き込みを停止する必要があります。

データソース

増分データ移行がサポートされているかどうか

サポートされるソリューション

推奨ソリューション

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

必須

  • OSSを使用して、物理バックアップファイルに基づいて手動でデータをクラウドに移行する

  • DBSとDTSを使用して、物理バックアップファイルに基づいてデータをクラウドに移行する

  • DTSを使用した論理クラウド移行の実行

DBSとDTSを使用して、数回クリックするだけで物理バックアップファイルに基づいてデータをクラウドに移行できます。 詳細については、「物理ゲートウェイを使用した自己管理型SQL ServerデータベースからApsaraDB RDS For SQL Serverインスタンスへのデータの移行」をご参照ください。

Azure SQLデータベース

必須

  • DTSを使用した論理クラウド移行の実行

    説明

    増分データを移行する場合は、SQL Serverの増分同期モードパラメーターを増分同期のための CDC インスタンスのポーリングとクエリに設定する必要があります。

  • ApsaraDB RDSコンソールを使用したエンドツーエンドのクラウド移行の実行

  • SSMSを使用したクラウド移行の実行

ApsaraDB RDSコンソールを使用してエンドツーエンドのクラウド移行を実行する方法、またはDTSを使用して論理的なクラウド移行を実行する方法の詳細については、「Microsoft AzureのSQL ServerデータベースからApsaraDB RDS For SQL Serverへのデータの移行」をご参照ください。

Azure SQLマネージドインスタンス

Azure仮想マシン上のSQL Server

  • DTSを使用した論理クラウド移行の実行

    説明

    増分データを移行する場合は、SQL Serverの増分同期モードパラメーターを増分同期のための CDC インスタンスのポーリングとクエリに設定する必要があります。

  • ApsaraDB RDSコンソールを使用したエンドツーエンドのクラウド移行の実行

  • SSMSを使用したクラウド移行の実行

  • OSSを使用して、物理バックアップファイルに基づいて手動でデータをクラウドに移行する

Amazon RDS for SQL Server

必須

  • DTSを使用した論理クラウド移行の実行

    説明

    増分データを移行する場合は、SQL Serverの増分同期モードパラメーターを増分同期のための CDC インスタンスのポーリングとクエリに設定する必要があります。

  • ApsaraDB RDSコンソールを使用したエンドツーエンドのクラウド移行の実行

  • SSMSを使用したクラウド移行の実行

  • OSSを使用して、物理バックアップファイルに基づいて手動でデータをクラウドに移行する

ApsaraDB RDSコンソールを使用してエンドツーエンドのクラウド移行を実行する方法、またはDTSを使用して論理クラウド移行を実行する方法の詳細については、「Amazon RDS For SQL ServerインスタンスからApsaraDB RDS for SQL Serverインスタンスへのデータの移行」をご参照ください。

Huawei Cloud RDS for SQL Server

選択可能

  • SSMSを使用したクラウド移行の実行

  • DTSを使用して論理クラウド移行を実行し、データを完全に移行する

  • OSSを使用して、物理バックアップファイルに基づいてフルデータを手動でクラウドに移行する

OSSを使用して物理バックアップファイルに基づいてフルデータを手動でクラウドに移行する方法の詳細については、「セルフマネージドSQL Serverインスタンスのフルバックアップデータを、クラウドディスクを使用してSQL Server 2008 R2を実行するか、またはSQL Server 2012以降を実行するApsaraDB RDSインスタンスに移行する」をご参照ください。

説明

TencentDB for SQL Serverデータベース

必須

  • DTSを使用した論理クラウド移行の実行

  • OSSを使用して、物理バックアップファイルに基づいて手動でデータをクラウドに移行する

DTSを使用して論理クラウド移行を実行する方法の詳細については、「セルフマネージドSQL ServerデータベースからApsaraDB RDS For SQL Serverインスタンスへのデータの移行」をご参照ください。

選択可能

SSMSを使用したクラウド移行の実行

Google Cloud SQL for SQL Server

必須

  • SSMSを使用したクラウド移行の実行

  • DTSを使用した論理クラウド移行の実行

    説明

    増分データを移行する場合は、SQL Serverの増分同期モードパラメーターを増分同期のための CDC インスタンスのポーリングとクエリに設定する必要があります。

DTSを使用して論理クラウド移行を実行する方法の詳細については、「セルフマネージドSQL ServerデータベースからApsaraDB RDS For SQL Serverインスタンスへのデータの移行」をご参照ください。

次のステップ

データ検証

SQL ServerデータベースからApsaraDB RDS for SQL Serverインスタンスにデータを移行した後、すべてのデータがApsaraDB RDS for SQL Serverインスタンスに移行されているかどうかを確認できます。 ビジネス要件に基づいて、次のいずれかのデータ検証方法を使用できます。

コアデータ検証

日付または自動インクリメントIDでデータをソートして、最新のビジネスデータが移行されているかどうかを確認できます。 たとえば、コアビジネステーブルOrdersにOrderIDやOrderDateなどのフィールドが含まれている場合、次のステートメントを実行して、ソースデータベースとターゲットデータベースのフィールドを照会できます。

-- SQL query in the source database
SELECT TOP 10 OrderID, OrderDate, CustomerID, TotalAmount
FROM Orders
ORDER BY OrderDate DESC;

-- SQL query in the destination database
SELECT TOP 10 OrderID, OrderDate, CustomerID, TotalAmount
FROM Orders
ORDER BY OrderDate DESC;

DTSを使用したフルデータ検証

DTSを使用すると、サービスのダウンタイムなしにソースデータベースとターゲットデータベースのデータを検証できます。 DTSを使用して完全データ検証タスクを作成し、すべてのデータがソースデータベースからターゲットデータベースに移行されているかどうかを確認できます。 詳細については、「データ検証タスクの設定」をご参照ください。

データベース統計の更新

SQL ServerデータベースからApsaraDB RDS for SQL Serverインスタンスにデータを移行すると、インスタンス内のデータ分散の変更により、移行先のApsaraDB RDS for SQL Serverインスタンスのパフォーマンスが大幅に低下する場合があります。 特定のデータベースのすべての統計を更新して、インスタンスのパフォーマンスを復元または改善できます。 詳細については、「データベースの属性の管理」トピックの「データベース統計の更新」セクションをご参照ください。