チュートリアル: Azure Data Studio で SQL Server を Azure SQL Managed Instance にオフライン移行する

Azure Database Migration Service と Azure Data Studio の Azure SQL Migration 拡張機能を使用すると、SQL Server のオンプレミス インスタンスから、最小限のダウンタイムで Azure SQL Managed Instance にデータベースをオフライン移行できます。

一定の手動構成が必要になるデータベースの移行方法については、Azure SQL Managed Instance への SQL Server インスタンスの移行に関する記事を参照してください。

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

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

  • Azure Data Studio で Azure SQL への移行ウィザードを起動する
  • ソース SQL Server データベースの評価を実行する
  • ソース SQL Server インスタンスからパフォーマンス データを収集する
  • ワークロードに最適な Azure SQL Managed Instance SKU のレコメンデーションを取得する
  • ソース SQL Server インスタンス、バックアップの場所、およびターゲット インスタンスである Azure SQL Managed Instance の詳細を指定します
  • Azure Database Migration Service のインスタンスを作成する
  • 移行を開始して完了までの進行状況を監視する

ヒント

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

このチュートリアルでは、SQL Server から Azure SQL Managed Instance へのオフライン移行について説明します。 オンライン移行については、Azure Data Studio で SQL Server を Azure SQL Managed Instance にオンライン移行する方法に関するページを参照してください。

前提条件

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

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

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

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

    • ターゲット インスタンスである Azure SQL Managed Instance の共同作成者、およびサーバー メッセージ ブロック (SMB) ネットワーク共有からデータベース バックアップ ファイルをアップロードするストレージ アカウントの共同作成者
    • ターゲット インスタンスである Azure SQL Managed Instance を含む Azure リソース グループまたは Azure ストレージ アカウントの閲覧者ロール。
    • Azure サブスクリプションの所有者ロールまたは共同作成者ロール (Database Migration Service の新しいインスタンスを作成する場合に必要)

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

    重要

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

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

  • ソース SQL Server インスタンスへの接続に使用するログインが SYSADMIN サーバー ロールのメンバーであること、または CONTROL SERVER アクセス許可を有していることを確認します。

  • 完全データベース バックアップ ファイルと、その後のトランザクション ログ バックアップ ファイルが格納される SMB ネットワーク共有、Azure ストレージ アカウント ファイル共有、または Azure ストレージ アカウント BLOB コンテナーを指定します。 データベースの移行中、このバックアップ場所が Database Migration Service によって使用されます。

    重要

    • Azure Data Studio の Azure SQL 移行拡張機能では、データベース バックアップは取得されません。また、ユーザーに代わってデータベース バックアップも開始されません。 その代わりに、このサービスでは、移行に既存のデータベース バックアップ ファイルが使用されます。
    • データベース バックアップ ファイルが SMB ネットワーク共有に存在する場合、Database Migration Service がデータベースのバックアップ ファイルをアップロードしたりデータベースを移行したりする際に使用できる Azure ストレージ アカウントを作成します。 Azure ストレージ アカウントは必ず、Database Migration Service のインスタンス作成先と同じリージョンに作成してください。
    • 各バックアップは、単独のバックアップ ファイルまたは複数のバックアップ ファイルに書き込むことができます。 完全ログとトランザクション ログなど、複数のバックアップを 1 つのバックアップ メディアに追加することはサポートされていません。
    • 大きなバックアップの移行に関連する潜在的な問題が発生する可能性を低減するために、圧縮されたバックアップを提供できます。
  • ソース SQL Server インスタンスを実行しているサービス アカウントに、データベース バックアップ ファイルが格納されている SMB ネットワーク共有に対する読み取りおよび書き込みアクセス許可があることを確認します。

  • Transparent Data Encryption (TDE) によって保護されたデータベースを移行する場合、データベースの復元前に、ソースの SQL Server インスタンスからターゲットのマネージド インスタンスに証明書を移行しておかなければなりません。 詳細については、「TDE で保護されたデータベースの証明書を Azure SQL Managed Instance に移行する」を参照してください。

    ヒント

    Always Encrypted で保護されている機密データがデータベースに含まれている場合、移行プロセスでは、ターゲットのマネージド インスタンスに Always Encrypted キーが自動的に移行されます。

  • データベース バックアップがネットワーク ファイル共有にある場合は、データベース バックアップにアクセスして移行するためのセルフホステッド統合ランタイムをインストールするコンピューターを用意します。 移行ウィザードでは、セルフホステッド統合ランタイムをダウンロードしてインストールするためのダウンロード リンクと認証キーが提供されます。

    移行の準備として、セルフホステッド統合ランタイムをインストールするコンピューターで、次のアウトバウンド ファイアウォール規則とドメイン名が有効になっていることを確認します。

    ドメイン名 送信ポート 説明
    パブリック クラウド: {datafactory}.{region}.datafactory.azure.net
    または *.frontend.clouddatahub.net

    Azure Government: {datafactory}.{region}.datafactory.azure.us

    Azure China: {datafactory}.{region}.datafactory.azure.cn
    443 セルフホステッド統合ランタイムが Database Migration Service に接続するために必要です。

    パブリック クラウドに新しく作成されたデータ ファクトリの場合、セルフホステッド統合ランタイム キーから、{datafactory}.{region}.datafactory.azure.net 形式の完全修飾ドメイン名 (FQDN) を特定します。

    既存のデータ ファクトリで、セルフホステッド統合キーに FQDN が見つからない場合は、代わりに *.frontend.clouddatahub.net を使用してください。
    download.microsoft.com 443 セルフホステッド統合ランタイムが更新プログラムをダウンロードするために必要です。 自動更新を無効にしている場合は、このドメインの構成をスキップできます。
    *.core.windows.net 443 ネットワーク共有からデータベース バックアップをアップロードするために Azure ストレージ アカウントに接続するセルフホステッド統合ランタイムによって使用されます

    ヒント

    データベース バックアップ ファイルが Azure ストレージ アカウントで既に提供されている場合、移行プロセス中にセルフホステッド統合ランタイムは不要です。

  • セルフホステッド統合ランタイムを使用する場合は、ランタイムがインストールされているコンピューターが、ソース SQL Server インスタンスと、バックアップ ファイルがあるネットワーク ファイル共有に接続できることを確認します。

  • アウトバウンド ポート 445 を有効にして、ネットワーク ファイル共有へのアクセスを許可します。 詳細については、セルフホステッド統合ランタイムを使用するうえでの推奨事項に関する記事を参照してください。

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

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

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

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

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

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

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

    [Azure SQL への移行] ウィザードを起動する

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

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

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

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

    1. [Choose your Azure SQL target] (Azure SQL ターゲットを選択してください) で、Azure SQL Managed Instance を選択します。

    評価の確認

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

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

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

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

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

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

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

    4. [Review Azure SQL Managed Instance Recommendations] (Azure SQL Managed Instance のレコメンデーションを確認します) で、レコメンデーションを確認します。 レコメンデーションのコピーを保存するには、[推奨事項レポートを保存する] チェック ボックスをオンにします。

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

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

移行の設定の構成

  1. Azure SQL への移行ウィザードの [Step 3: Azure SQL target] (ステップ 3: Azure SQL ターゲット) で、Azure アカウント、Azure サブスクリプション、Azure リージョン (場所)、ターゲット インスタンス (Azure SQL Managed Instance) を含むリソース グループを選択します。 次に、 [次へ] を選択します。

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

    注意

    オフライン移行モードでは、データベース バックアップがターゲット インスタンスである Azure SQL Managed Instance に復元されている間、ソース SQL Server データベースは書き込みアクティビティに使用すべきではありません。 移行が完了するまで、アプリケーションのダウンタイムを考慮する必要があります。

  3. [Step 5: Data source configuration] (ステップ 5: データ ソースの構成) で、データベース バックアップの場所を選択します。 データベース バックアップは、オンプレミスのネットワーク共有または Azure Storage BLOB コンテナーに置くことができます。

    • ネットワーク共有上にあるバックアップの場合は、次の情報を入力または選択します。

      名前 説明
      ソースの資格情報 - ユーザー名 ソース SQL Server インスタンスに接続し、バックアップ ファイルを検証するための資格情報 (Windows および SQL 認証)。
      ソースの資格情報 - パスワード ソース SQL Server インスタンスに接続し、バックアップ ファイルを検証するための資格情報 (Windows および SQL 認証)。
      バックアップを含むネットワーク共有の場所 完全およびトランザクション ログのバックアップ ファイルを含むネットワーク共有の場所。 有効なバックアップ セットに属していないネットワーク共有内の無効なファイルまたはバックアップ ファイルは、移行プロセス中に自動的に無視されます。
      ネットワーク共有の場所への読み取り権限のある Windows ユーザー アカウント バックアップ ファイルを取得するためのネットワーク共有への読み取りアクセス権を持つ Windows 資格情報 (ユーザー名)。
      パスワード バックアップ ファイルを取得するためのネットワーク共有への読み取りアクセス権を持つ Windows 資格情報 (パスワード)。
      ターゲット データベース名 ターゲット データベース名は、移行プロセス中に変更できます。
      ストレージ アカウントの詳細 バックアップ ファイルのアップロード先のリソース グループとストレージ アカウント。 コンテナーを作成する必要はありません。 指定したストレージ アカウントには、アップロード プロセス中、Database Migration Service によって自動的に BLOB コンテナーが作成されます。
    • Azure ストレージ BLOB コンテナーに格納されているバックアップの場合は、次の情報を入力または選択します。

      名前 説明
      ターゲット データベース名 ターゲット データベース名は、移行プロセス中に変更できます。
      ストレージ アカウントの詳細 バックアップ ファイルが置かれているリソース グループ、ストレージ アカウント、コンテナー。
      最終バックアップ ファイル 移行するデータベースの最後のバックアップのファイル名。

    重要

    ループバック チェック機能が有効になっていて、ソース SQL Server インスタンスとファイル共有が同じコンピューター上にある場合、ソースは FQDN を使用してファイル共有にアクセスできません。 この問題を解決するには、ループバック チェック機能を無効にしてください。

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

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

注意

過去に 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. [次へ] を選択します。

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 インスタンスに接続するための前提条件を満たしたコンピューターにそれをインストールします。

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

    2. [認証キー] テーブルで、ウィザードから提供されたいずれかの認証キーをコピーし、それを Azure Data Studio に貼り付けます。 認証キーが有効であれば、Integration Runtime Configuration Manager に緑色のチェック マーク アイコンが表示されます。 緑色のチェック マークは、引き続き登録に進むことができることを示します。

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

      Note

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

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

    統合ランタイムの [接続のテスト]

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

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

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

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

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

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

    移行の監視ダッシュボード

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

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

    移行の詳細ペインには、バックアップ ファイルとそれらに対応する状態が表示されます。

    Status 説明
    [受信] バックアップ ファイルがソース バックアップ場所に到着し、検証されました。
    アップロード 統合ランタイムで、バックアップ ファイルが Azure ストレージ アカウントにアップロードされています。
    アップロード完了 バックアップ ファイルが Azure ストレージ アカウントにアップロードされました。
    Restoring バックアップ ファイルが Azure SQL Managed Instance に復元しています。
    復元 バックアップ ファイルが Azure SQL Managed Instance に正常に復元されました。
    Canceled 移行プロセスが取り消されました。
    無視 バックアップ ファイルは有効なデータベース バックアップ チェーンに属していないため、無視されました。

すべてのデータベース バックアップが Azure SQL Managed Instance に復元されると、移行されたデータベースが確実に使用できる状態になるように Database Migration Service によって自動一括移行が開始されます。 移行の状態が [進行中] から [成功] に変わります。

重要

移行後、Business Critical サービス レベルでの SQL Managed Instance が使用できるようになるには、AlwaysOn 高可用性グループに対して 3 つのセカンダリ レプリカをシードする必要があるため、General Purpose レベルよりかなり長くかかることがあります。 この操作にかかる時間は、データのサイズによって異なります。 詳細については、管理操作の所要時間に関するセクションを参照してください。

制限事項

Azure Data Studio 用の Azure SQL 拡張機能を使用して Azure SQL Managed Instance に移行する場合、次の制限があります。

  • 1 つのデータベースを移行する場合、データベース バックアップは (コンテナーのルート フォルダーを含め) データベース フォルダー内のフラット ファイル構造に配置する必要があります。また、サポートされていないため、フォルダーを入れ子にすることはできません。
  • 同じ Azure Blob Storage コンテナーを使用して複数のデータベースを移行する場合は、異なるデータベースのバックアップ ファイルをコンテナー内の別々のフォルダーに配置する必要があります。
  • ターゲットの Azure SQL Managed Instance で DMS を使用して既存のデータベースを上書きする操作はサポートされていません。
  • ソース トポロジに合わせてターゲットで高可用性とディザスター リカバリーを構成することは、DMS ではサポートされていません。
  • 次のサーバー オブジェクトはサポートされていません。
    • Login
    • SQL Server エージェント ジョブ
    • 資格情報
    • SSIS パッケージ
    • サーバーの役割
    • サーバー監査
  • DMS を使用したデータベースの移行には、Azure Data Factory から作成された既存のセルフホステッド統合ランタイムを使用することはできません。 最初は、Azure Data Studio の Azure SQL 移行拡張機能を使用してセルフホステッド統合ランタイムを作成する必要があります。これを今後のデータベース移行に再利用できます。
  • (DMS によって作成された) 1 つの LRS ジョブは、最大 30 日間実行できます。 この期間が経過すると、ジョブは自動的に取り消されるため、ターゲット データベースは自動的に削除されます。

次のステップ