チュートリアル: SQL Server を Azure SQL Database に移行する (オフライン)

Azure Data Studio の Azure SQL Migration 拡張機能または Azure portal から Azure Database Migration Service を使って、SQL Server のオンプレミス インスタンスから Azure SQL Database にデータベースを移行できます (オフライン)。

このチュートリアルでは、Database Migration Service を使って、SQL Server のオンプレミス インスタンスから Azure SQL Database のインスタンスにサンプルの AdventureWorks2019 データベースを移行する方法を説明します。 移行プロセス中に許容できるダウンタイムを考慮して、このチュートリアルではオフライン移行モードを使用します。

このチュートリアルでは、以下の内容を学習します。

  • Azure Data Studio で Azure SQL への移行ウィザードを起動する
  • ソース SQL Server データベースの評価を実行する
  • ソース SQL Server インスタンスからパフォーマンス データを収集する
  • ワークロードに最適な Azure SQL Database SKU のレコメンデーションを取得する
  • Azure Database Migration Service のインスタンスを作成する
  • 移行を開始して完了までの進行状況を監視する

ヒント

Azure Database Migration Service では、データベースをオフラインまたはオンラインで移行できます。 "オフライン" 移行では、移行の開始時がアプリケーションのダウンタイムの起点になります。 移行の完了時点から新しい環境に切り替わるまでの時間にダウンタイムを制限するには、"オンライン" 移行を使用してください。 オフライン移行をテストして、ダウンタイムが許容範囲内であるかどうかを判断することをお勧めします。 予想されるダウンタイムが許容できない場合は、オンライン移行を行います。

重要

Azure SQL Database をターゲットとする "オンライン" 移行は現在使用できません。

移行オプション

次のセクションでは、Azure SQL Migration 拡張機能または Azure portal で Azure Database Migration Service を使う方法について説明します。

前提条件

チュートリアルを開始する前に:

  • Azure Data Studio をダウンロードしてインストールします。

  • Azure Data Studio マーケットプレースから Azure SQL Migration 拡張機能をインストールします。

  • 次に示す組み込みロールのいずれかに割り当てられている Azure アカウントを用意します。

    • ターゲット インスタンスである Azure SQL Database の共同作成者
    • ターゲット インスタンス (Azure SQL Database) を含む Azure リソース グループの閲覧者ロール
    • Azure サブスクリプションの所有者ロールまたは共同作成者ロール (Azure Database Migration Service の新しいインスタンスを作成する場合に必要)

    いずれかの組み込みロールを使用する代わりに、カスタム ロールを割り当てることもできます。

    重要

    Azure アカウントが必要になるのは、移行手順を構成するときのみです。 Azure Data Studio の移行ウィザードで Azure レコメンデーションを確認したり評価を行ったりする際に、Azure アカウントは必要ありません。

  • ターゲット インスタンスである Azure SQL Database を作成します。

  • ソース SQL Server インスタンスに接続する SQL Server ログインが db_datareader ロールのメンバーであること、また、ターゲット SQL Server インスタンスのログインが db_owner ロールのメンバーであることを確認します。

  • Database Migration Service を使用してソースからターゲットの Azure SQL DB にデータベース スキーマを移行するには、サポートされている SHIR の最小バージョン は 5.37 以上です。

  • Database Migration Service を初めて使う場合は、Microsoft.DataMigration リソース プロバイダーがサブスクリプションに登録されていることを確認します。

Note

これで、Database Migration Service を使用して、データベース スキーマとデータの両方を移行できるようになりました。 また、移行するテーブルの一覧を選択する 前に、SQL Server dacpac 拡張機能Azure Data Studio の SQL Database Projects 拡張機能 などのツールを使用してスキーマを移行することもできます。

Azure SQL Database ターゲットにテーブルが存在しない場合、または移行を開始する前にテーブルが選択されていない場合は、[次へ] ボタンを選択して移行タスクを開始することはできません。 ターゲットにテーブルが存在しない場合は、スキーマ移行オプションを選択して先に進む必要があります。

Azure Data Studio で Azure SQL への移行ウィザードを起動する

Azure SQL への移行ウィザードを起動するには:

  1. Azure Data Studio で [接続] に移動します。 SQL Server のオンプレミス インスタンスを選択して、そこに接続します。 Azure 仮想マシン上の SQL Server に接続することもできます。

  2. サーバー接続を右クリックして [管理] を選択します。

    Screenshot that shows a server connection and the Manage option in Azure Data Studio.

  3. サーバー メニューの [全般] で、[Azure SQL Migration] を選択します。

    Screenshot that shows the Azure Data Studio server menu.

  4. [Azure SQL の移行] ダッシュボードで、[Azure SQL への移行] を選択して移行ウィザードを起動します。

    Screenshot that shows the Migrate to Azure SQL wizard.

  5. ウィザードの最初のページで、新しいセッションを開始するか、以前に保存したセッションを再開します。

データベースの評価を実行して、パフォーマンス データを収集し、Azure のレコメンデーションを取得する

  1. Azure SQL への移行ウィザードの [Step 1: Databases for assessment] (ステップ 1: 評価対象のデータベース) で、評価するデータベースを選択します。 次に、 [次へ] を選択します。

    Screenshot that shows selecting a database for assessment.

  2. [Step 2: Assessment results and recommendations] (ステップ 2: 評価の結果とレコメンデーション) で、次の手順を実行します。

    1. [Azure SQL ターゲットを選択しり] で、[Azure SQL Database] を選択します。

      Screenshot that shows selecting the Azure SQL Database target.

    2. [View/Select] (表示/選択) を選択して、評価結果を表示します。

      Screenshot that shows view/select assessment results.

    3. 評価結果からデータベースを選択し、評価レポートを確認して、問題が見つからなかったことを確認します。

      Screenshot that shows the assessment report.

    4. [Azure のレコメンデーションを取得する] を選択して、レコメンデーション ペインを開きます。

      Screenshot that shows Azure recommendations.

    5. [Collect performance data now] (今すぐパフォーマンス データを収集する) を選択します。 パフォーマンス ログの格納先となるローカル コンピューター上のフォルダーを選択し、[Start] (開始) を選択します。

      Screenshot that shows performance data collection.

      データ収集を停止するか、Azure Data Studio を閉じるまで、パフォーマンス データは収集されます。

      10 分後、Azure SQL Database のレコメンデーションが利用可能になった旨が Azure Data Studio から伝えられます。 最初のレコメンデーションが生成された後、[データ収集を再開する] を選択してデータ収集プロセスを継続することで、SKU レコメンデーションを調整できます。 評価時間の延長は特に、使用パターンが経時的に変化する状況で効果的です。

      Screenshot that shows performance data collected.

    6. 選択したAzure SQL Database ターゲットの [詳細の表示] を選択して、詳細な SKU レコメンデーション レポートを開きます。

      Screenshot that shows the View details link for the target database recommendations.

    7. [Review Azure SQL Database Recommendations] (Azure SQL Database のレコメンデーションを確認します) で、レコメンデーションを確認します。 レコメンデーションのコピーを保存するには、[推奨事項レポートを保存する] を選択します。

      Screenshot that shows SKU recommendation details.

  3. [閉じる] を選択してレコメンデーション ペインを閉じます。

  4. [次へ] を選択して、引き続きウィザードでデータベースの移行を行います。

移行の設定の構成

  1. Azure SQL への移行ウィザードの [Step 3: Azure SQL target] (ステップ 3: Azure SQL ターゲット) で、ターゲット Azure SQL Database インスタンスに関する手順を実行します。

    1. Azure アカウント、Azure サブスクリプション、Azure リージョン (場所)、Azure SQL Database デプロイを含むリソース グループを選択します。

      Screenshot that shows Azure account details.

    2. Azure SQL Database サーバーについて、ターゲット Azure SQL Database サーバー (論理サーバー) を選択します。 ターゲット データベース デプロイのユーザー名とパスワードを入力します。 次に、 [接続] を選択します。 資格情報を入力して、ターゲット データベースへの接続を確認します。

      Screenshot that shows Azure SQL Database details.

    3. 次に、移行のターゲット データベースとソース データベースをマッピングします。 [ターゲット データベース] で、Azure SQL Database ターゲットを選択します。 次に、[次へ] を選択して、移行ウィザードの次の手順に進みます。

      Screenshot that shows source and target mapping.

  2. [Step 4: Migration mode] (ステップ 4: 移行モード) で、[オフライン移行] を選択し、[次へ] を選択します。

    Screenshot that shows offline migrations selection.

  3. [Step 5: Data source configuration] (ステップ 5: データ ソースの構成) で、次の手順を実行します。

    1. [Source credentials] (ソースの資格情報) に、ソース SQL Server の資格情報を入力します。

    2. [テーブルの選択] で、[編集] の鉛筆アイコンを選択します。

      Screenshot that shows source SQL Server credentials.

    3. [Select tables for <database-name>] (<データベース名> のテーブルの選択) で、ターゲットに移行するテーブルを選択します。 [行を含む] 列に、ターゲット テーブルにターゲット データベース内の行があるかどうかが示されます。 1 つまたは複数のテーブルを選択できます。 次に、[更新] を選択します。

      選択したテーブルのリストは、移行を開始する前であればいつでも更新できます。

      次の例では、テキスト フィルターを適用して、Employee という単語を含むテーブルを選択します。 移行のニーズに基づいてテーブルのリストを選択してください。

      Screenshot that shows the table selection.

  4. テーブルの選択内容を確認し、[次へ] を選択して、移行ウィザードの次の手順に進みます。

    Screenshot that shows selected tables to migrate.

Note

テーブルが選択されていない場合や、ユーザー名とパスワードが入力されていない場合、[次へ] ボタンは選択できません。

これで、Database Migration Service を使用して、データベース スキーマとデータの両方を移行できるようになりました。 また、移行するテーブルの一覧を選択する 前に、SQL Server dacpac 拡張機能Azure Data Studio の SQL Database Projects 拡張機能 などのツールを使用してスキーマを移行することもできます。

Database Migration Service インスタンスを作成する

Azure SQL への移行ウィザードの [ステップ 6: Azure Database Migration Service] で、Database Migration Service の新しいインスタンスを作成するか、または以前に作成した既存のインスタンスを再利用します。

Note

過去に Azure portal を使用して作成した Database Migration Service インスタンスは、Azure Data Studio の移行ウィザードで再利用できません。 インスタンスを再利用できるのは、Azure Data Studio を使用してインスタンスを作成した場合だけです。

Database Migration Service の既存のインスタンスを使用する

Database Migration Service の既存のインスタンスを使用するには:

  1. [リソース グループ] で、Database Migration Service の既存のインスタンスを含んだリソース グループを選択します。

  2. [Azure Database Migration Service] で、選択したリソース グループにある Database Migration Service の既存のインスタンスを選択します。

  3. [次へ] を選択します。

    Screenshot that shows Database Migration Service selection.

Database Migration Service の新しいインスタンスを作成する

Database Migration Service の新しいインスタンスを作成するには:

  1. Database Migration Service の新しいインスタンスを置く新しいリソース グループを [リソース グループ] で選択します。

  2. [Azure Database Migration Service][新規作成] を選択します。

  3. [Azure Database Migration Service の作成] で、Database Migration Service インスタンスの名前を入力し、[作成] を選択します。

  4. [Set up integration runtime] (統合ランタイムのセットアップ) で、次の手順を実行します。

    1. [統合ランタイムのダウンロードとインストール] リンクを選択して、Web ブラウザーでダウンロード リンクを開きます。 統合ランタイムをダウンロードし、移行元の SQL Server インスタンスに接続するための前提条件を満たしているコンピューターに、それをインストールします。

      Screenshot that shows the Download and install integration runtime link.

      インストールが完了すると、Microsoft Integration Runtime Configuration Manager が自動的に起動して登録プロセスが開始されます。

    2. [認証キー] テーブルで、ウィザードから提供されたいずれかの認証キーをコピーし、それを Azure Data Studio に貼り付けます。

      Screenshot that highlights the authentication key table in the wizard.

      認証キーが有効であれば、Integration Runtime Configuration Manager に緑色のチェック マーク アイコンが表示されます。 緑色のチェック マークは、引き続き登録に進むことができることを示します。

      セルフホステッド統合ランタイムの登録後、Microsoft Integration Runtime 構成マネージャーを閉じます。

      Note

      セルフホステッド統合ランタイムについて詳しくは、「セルフホステッド統合ランタイムを作成して構成する」をご覧ください。

  5. Azure Data Studio の [Azure Database Migration Service の作成][テスト接続] を選択し、新しく作成した Database Migration Service インスタンスが、新たに登録されたセルフホステッド統合ランタイムに接続されていることを確認します。

    Screenshot that shows IR connectivity test.

  6. Azure Data Studio の移行ウィザードに戻ります。

データベースの移行を開始する

Azure SQL への移行ウィザードの [Step 7: Summary] (ステップ 7: サマリー) で、作成した構成を確認し、[移行の開始] を選択してデータベースの移行を開始します。

Screenshot that shows how to start migration.

データベースの移行を監視する

  1. Azure Data Studio のサーバー メニューの [General] (全般) で、[Azure SQL Migration] (Azure SQL の移行) を選択し、Azure SQL Database の移行に使用するダッシュボードに移動します。

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

    Screenshot that shows monitor migration dashboard.

  2. [データベースの移行が進行中] を選択して、アクティブな移行を確認します。

    特定の移行の詳細を取得するには、そのデータベースの名前を選択します。

    Screenshot that shows database migration details.

    移行状態が更新されるたびに、確認されている最新の移行状態が Database Migration Service から返されます。 次の表は、状態の種類とその説明です。

    Status 説明
    コピーの準備 ターゲット テーブルの自動統計、トリガー、インデックスをサービスが無効にしています。
    コピー ソース データベースからターゲット データベースにデータがコピーされています。
    コピーの完了 データのコピーが完了しました。 サービスは、他のテーブルのコピーが完了するのを待って、テーブルを元のスキーマに戻す最後の手順を開始します。
    インデックスの再構築 サービスはターゲット テーブルのインデックスを再構築しています。
    成功 すべてのデータがコピーされ、インデックスが再構築されました。
  3. 移行の詳細ページをチェックして、各データベースの最新の状態を確認します。

    次に示すのは、状態が [作成中] になっている AdventureWorks2019 データベースの移行の例です。

    Screenshot that shows a creating migration status.

  4. メニュー バーで [更新] を選択して、移行の状態を更新します。

    移行の状態を更新すると、AdventureWorks2019 データベース移行の例の更新された状態は [進行中] になります。

    Screenshot that shows a migration in progress status.

  5. データベース名を選択してテーブル ビューを開きます。 このビューには、移行の現在の状態、現在その状態にあるテーブルの数、各テーブルの詳細な状態が表示されます。

    Screenshot that shows monitoring table migration.

    すべてのテーブル データが Azure SQL Database ターゲットに移行されると、Database Migration Service によって移行状態が [進行中] から [成功] に更新されます。

    Screenshot that shows succeeded migration.

Note

Database Migration Service は、データのないテーブル (0 行) をスキップすることで、移行を最適化します。 データのないテーブルはリストに表示されません。移行の作成時にテーブルを選択したとしても同様です。

Azure SQL Database への移行が完了しました。 移行後の一連のタスクを実行して、すべてがスムーズかつ効率的に機能していることを確認するのをお勧めします。

重要

Azure SQL Database のクラウドベースの高度な機能をぜひ活用してください。 この機能には、組み込みの高可用性脅威検出ワークロードの監視とチューニングなどが含まれます。

制限事項

Azure SQL Database オフライン移行では、データ移動に Azure Data Factory (ADF) パイプラインが利用されるため、ADF の制限に従います。 データベース移行サービスも作成されると、対応する ADF が作成されます。 したがって、ファクトリの制限はサービスごとに適用されます。

  • SHIR がインストールされているマシンは、移行用のコンピューティングとして機能します。 このマシンがデータ コピーの CPU とメモリの負荷を処理できることを確認します。 詳細については、SHIR の推奨事項に関するページを参照してください。
  • データベースあたり 100,000 テーブルの制限。
  • サービスごとに 10,000 個の同時データベース移行。
  • 移行速度は、ターゲット Azure SQL Database SKU とセルフホステッド統合ランタイム ホストによって大きく異なります。
  • Azure SQL データベースの移行では、アクティビティの開始時に ADF のオーバーヘッドが発生するため、テーブル番号のスケーリングが不十分です。 データベースに何千ものテーブルがある場合、1 行 1 ビットのデータで構成されている場合でも、各テーブルの起動プロセスに数秒を要する可能性があります。
  • 現在、2 バイト文字の Azure SQL データベース テーブル名は移行でサポートされていません。 軽減策は、移行前にテーブルの名前を変更することです。移行が成功した後は、元の名前に戻すことができます。
  • BLOB 列が大きいテーブルは、タイムアウトにより移行に失敗する場合があります。
  • SQL Server で予約されたデータベース名は現在サポートされていません。
  • セミコロンを含むデータベース名は現在サポートされていません。
  • 計算列は移行されません。

次のステップ