Azure SQL 移行拡張機能を使用して Azure SQL Database に移行する

完了

Azure への移行中にデータベースをオフラインにできる場合は、いくつかのツールを使用することができます。

私たちの自転車製造のシナリオでは、HR データベースがビジネスクリティカルであると見なされていますが、週末にはほとんど使用されません。 金曜日の夜間から月曜日の朝までの間にオフライン移行を実行する予定ですが、最適な移行方法を評価する必要があります。

Azure Data Studio 用の Azure SQL 移行拡張機能または Azure Migrate を使用して、すべての移行前チェックが実行済みであることが想定されています。 このプロセスによって、その機能と互換性の問題に確実に対応できます。

Azure Data Studio 用 Azure SQL Migration 拡張機能を使用して移行する

Azure Data Studio 用の Azure SQL 移行拡張機能は、SQL Server データベースを Azure に移行するための準備に役立つツールです。 移行の準備状況を評価し、ニーズに最適な Azure リソースを推奨し、移行プロセスを容易にします。 小規模から中規模のデータベースには、この拡張機能を使用することをお勧めします。

Azure Data Studio 用の Azure SQL 移行拡張機能のスクリーンショット。

Azure SQL 移行拡張機能では、最新バージョンのデータ移行サービスが使用され、SQL Server データベースを Azure SQL に移行する準備ができているかどうかを評価できる高度な評価機能が含まれています。

さらに、Azure SQL 移行拡張機能を使用して、複数の SQL Server データベースを無料で移行できます。

次のステップは、Azure Data Studio 用の Azure SQL 移行拡張機能を使用して Azure SQL Database に移行するプロセスを示しています。

手順 説明
セットアップ Azure Data Studio と Azure SQL 移行拡張機能をインストールします。 Azure Data Studio を開き、[Azure SQL への移行] 移行ウィザードを開始します。 このウィザードは、移行プロセスについて順を追って説明します。
ステップ 1: 評価用のデータベース 移行するデータベースを評価します。
ステップ 2: 評価の結果と推奨事項 移行の準備状況を評価します。 このツールによって、移行プロセスに影響を与える可能性のある潜在的な問題が特定されます。 現在のデータベースからパフォーマンス データを収集します。 このデータは、Azure SQL セットアップの推奨事項を提供するために使用されます。
ステップ 3: Azure ターゲット Azure アカウントとターゲットの Azure SQL Database を選択します。
ステップ 4: Azure Database Migration Service 既存の Azure Database Migration Service を選択するか、新しいものを作成します。
ステップ 5: データ ソースの構成 セルフホステッド統合ランタイムからソースに接続するために使用する資格情報を入力します。 ソースからターゲットに移行するテーブルを選択します。 移行するテーブルを選択する前に、dacpac 拡張機能、Azure Data Studio の SQL データベース プロジェクト拡張機能、または DMA のいずれかを使用して、ソースからターゲットにデータベース スキーマが作成されていることを確認します。
ステップ 6: 概要 移行情報を確認し、移行プロセスを開始します。

Database Migration Service では、空のテーブルを選択した場合でも、それらをスキップすることで移行プロセスが最適化されます。

重要

現在、Azure SQL Database では、2 バイト文字を含むテーブル名の移行はサポートされていません。 回避策として、移行前にこれらのテーブルの名前を一時的に変更し、移行が完了したら元の名前に戻すことができます。

移行の状態

いくつかの状態で、移行の最新の進行状況がわかります。

  • コピーの準備中: サービスが、ターゲット テーブルの自動統計、トリガー、およびインデックスを無効にするプロセスにあります。

  • コピー中: ソース データベースからターゲット データベースへのデータ コピーが進行中です。

  • コピー完了: データ コピーが完了し、サービスが他のテーブルでコピーの完了を待機しています。

  • インデックスの再構築中: サービスがターゲット テーブルのインデックスを再構築しています。

  • 成功: すべてのデータがコピーされ、インデックスが再構築されました。

パフォーマンスに関する考慮事項

移行速度は、ターゲット Azure SQL Database SKU とセルフホステッド統合ランタイム ホストによって大きく異なります。 最適な移行エクスペリエンスを得るための移行プロセスを開始するには、Azure SQL Database コンピューティング リソースをスケールアップすることを強くお勧めします。

サーバーにセルフホステッド統合ランタイムをインストールするかどうかを決定するときは、このマシンがデータ コピー操作の CPU とメモリの負荷に対応できることを確認します。

小さなテーブルであっても、Azure Data Factory (ADF) がアクティビティを開始するのにかかる時間が原因で、大量のテーブルを含む Azure SQL Database の移行が遅くなる可能性があります。

BLOB 列が大きいテーブルは、タイムアウトにより移行に失敗する場合があります。

1 台のコンピュータ上のセルフホステッド統合ランタイムごとに最大 10 個のデータベースの同時移行をお勧めします。 セルフホステッド ランタイムをスケールアウトするか、異なるコンピューター上に個別のインスタンスを作成して、同時移行するデータベースを増やします。

移行の監視

データベースの移行を開始したら、Azure Data Studio で進行状況を監視できます。 Azure portal の Azure Database Migration Service リソースの下で進行状況を追跡することもできます。

Azure Data Studio から移行を監視する

[データベースの移行状態] で、進行中の移行、完了済みの移行、失敗した移行 (該当する場合) を追跡するか、またはすべてのデータベースの移行を確認できます。

  1. 移行ダッシュボードで [データベースの移行が進行中] を選択して、進行中の移行を表示します。

    Azure Data Studio 用の Azure 移行拡張機能の移行ダッシュボードのスクリーンショット。

  2. 詳細を確認するには、データベース名を選択します。

    Azure Data Studio 用の Azure 移行拡張機能の移行詳細のスクリーンショット。

  3. [移行の状態] プロパティが [完了処理中] に変わります。その後、移行が完了した後に [成功] に変わります。

    Azure Data Studio 用の Azure 移行拡張機能の移行詳細で完了した移行を示しているスクリーンショット。

Azure portal から移行を監視する

または、Azure Database Migration Service を使用して移行アクティビティを監視することもできます。

データベースの移行を監視するには、通常、Azure portal に移動し、Database Migration Service のインスタンスを見つけます。 サービスを見つけたら、そのインスタンスの概要を表示できます。 進行中のデータベース移行に関する詳細情報にアクセスするには、[移行の監視] を選択します。

Azure portal の Azure Database Migration Service の監視ページのスクリーンショット。

移行の状態が [成功] になったら、ターゲット サーバーに移動し、ターゲット データベースを検証します。 データベース スキーマとデータを確認します。

大規模な移行

PowerShell または Azure CLI を使用して、オンプレミスの SQL Server から Azure SQL Database にデータベースのオフライン移行を実行することもできます。

次の例は、AdventureWorks データベースを Azure SQL Database に移行しています。


$sourcePass = ConvertTo-SecureString "password" -AsPlainText -Force
$targetPass = ConvertTo-SecureString "password" -AsPlainText -Force

New-AzDataMigrationToSqlDb `
-ResourceGroupName MyGroup `
-SqlDbInstanceName myserver `
-Kind "SqlDb" `
-TargetDbName AdventureWorks `
-SourceDatabaseName AdventureWorks `
-SourceSqlConnectionAuthentication SQLAuthentication `
-SourceSqlConnectionDataSource myserver.microsoft.com `
-SourceSqlConnectionUserName user `
-SourceSqlConnectionPassword $sourcePass `
-Scope "/subscriptions/MySubscriptionID/resourceGroups/MyGroup/providers/Microsoft.Sql/servers/myserver" `
-TargetSqlConnectionAuthentication SQLAuthentication `
-TargetSqlConnectionDataSource myserver.database.windows.net `
-TargetSqlConnectionUserName user `
-TargetSqlConnectionPassword $targetPass `
-MigrationService "/subscriptions/MySubscriptionID/resourceGroups/MyGroup/providers/Microsoft.DataMigration/SqlMigrationServices/MyService"

次の例は、AdventureWorks データベースからテーブルのサブセットを移行しています。


New-AzDataMigrationToSqlDb `
-ResourceGroupName MyGroup `
-SqlDbInstanceName myserver `
-Kind "SqlDb" `
-TargetDbName AdventureWorks `
-SourceDatabaseName AdventureWorks `
-SourceSqlConnectionAuthentication SQLAuthentication `
-SourceSqlConnectionDataSource myserver.microsoft.com `
-SourceSqlConnectionUserName user `
-SourceSqlConnectionPassword $sourcePass `
-Scope "/subscriptions/MySubscriptionID/resourceGroups/MyGroup/providers/Microsoft.Sql/servers/myserver" `
-TargetSqlConnectionAuthentication SQLAuthentication `
-TargetSqlConnectionDataSource myserver.database.windows.net `
-TargetSqlConnectionUserName user `
-TargetSqlConnectionPassword $targetPass `
-TableList "[Person].[Person]", "[Person].[EmailAddress]" `
-MigrationService "/subscriptions/MySubscriptionID/resourceGroups/MyGroup/providers/Microsoft.DataMigration/SqlMigrationServices/MyService"

Azure 移行拡張機能で使用できる PowerShell コマンドおよび Azure CLI コマンドの詳細については、データ移行拡張機能用の PowerShell モジュール、およびデータ移行拡張機能用の Azure CLI に関する記事を参照してください。