次の方法で共有


移行ガイド: SQL Server から Azure SQL Managed Instance へ

適用対象:Azure SQL Managed Instance

このガイドでは、SQL Server から Azure SQL Managed Instance へあなたのユーザー データベースを移行する方法について説明します。

先に進む前に、移行前の手順を完了してください。

移行

移行前ステージの関連タスクを完了したら、スキーマとデータの移行を実行する準備は完了です。

選択した移行方法を使用してデータを移行します。

このセクションでは、次の推奨移行オプションの一般的な移行手順について説明します。

  • マネージドインスタンス リンク
  • ログ再生サービス (LRS)
  • ネイティブ RESTORE DATABASE FROM URL。SQL Server からのネイティブ バックアップを使用し、ある程度のダウンタイムが必要です
  • ほぼゼロのダウンタイムで移行を提供する Azure Database Migration Service (DMS)
  • Azure Arc での SQL Server の移行

SQL Managed Instance は、オンプレミスまたは Azure Virtual Machines 上の SQL Server の実装からデータベースを大量に移行する必要があるユーザー シナリオを対象とします。 インスタンス レベルとデータベース間の機能を定期的に使用するアプリケーションのバックエンドをリフト アンド シフトする必要がある場合に最適な選択肢です。 このシナリオに該当する場合は、アプリケーションを再設計する必要なしに Azure 内の対応する環境にインスタンスを移行できます。

SQL Server インスタンスを移動するには、慎重に計画する必要があります。

  • 併置する必要のある (同じインスタンスで実行されている) すべてのデータベースの移行。
  • ログイン、資格情報、SQL Server エージェントのジョブと演算子、サーバー レベルのトリガーなど、アプリケーションが依存するインスタンス レベルのオブジェクトの移行。

SQL Managed Instance は、通常のデータベース管理アクティビティの一部を、組み込み時にプラットフォームに委任できるマネージド サービスです。 そのため、 高可用性 が組み込まれているため、通常のバックアップのメンテナンス ジョブや Always On 構成など、一部のインスタンス レベルのデータを移行する必要はありません。

データベース移行

Azure Arc インスタンスによって有効になっている SQL Server を Azure portal から直接 Azure SQL Managed Instance に移行します。 詳細な手順については、「 SQL Server インスタンスを Azure SQL Managed Instance に移行する」を参照してください。

データベース移行では、マネージド インスタンス リンクまたは Log Replay Service (LRS) メソッドをバックグラウンドで使用して、移行プロセスの構成、管理、監視を簡素化しながら、組み込みの移行エクスペリエンスを提供します。

このセクションでは、Managed Instance リンクを使用して、最小限のダウンタイムで SQL Server から Azure SQL Managed Instance に移行する手順の概要を説明します。 詳細な手順については、 リンクを使用した移行を参照してください。

リンクを使用して移行するには、次の手順に従います。

  1. ターゲット SQL マネージド インスタンス ( Azure portalPowerShellAzure CLI) を作成します。
  2. リンク用の環境を準備します
  3. SSMS またはスクリプトを使用してリンクを構成します。
  4. ワークロードを停止します。
  5. ターゲット インスタンスのデータを検証します。
  6. リンクをフェールオーバーします

ログ再生サービス (LRS)

このセクションでは、ログ再生サービス (LRS) を使用して最小限のダウンタイムで SQL Server から SQL Managed Instance に移行する手順の概要を説明します。 詳細な手順については、「ログ再生サービスを使用して SQL Server からデータベースを移行するを確認してください。

LRS を使用して移行するには、次の手順に従います。

  1. BLOB コンテナーがある Azure ストレージ アカウントを作成します。
  2. SAS トークンまたはマネージド ID を使用して Blob Storage ストレージ アカウントに対して認証し、アクセスを検証します。
  3. 複数のデータベースを移行する場合はフォルダー構造を正しく構成してください
  4. バックアップをコピーするか、BACKUP TO URL を使用して直接バックアップを作成して、ストレージ アカウント にバックアップをアップロードします
  5. LRS をオートコンプリート モードまたは連続モードで実行するよう決定します。
  6. LRS を起動します。
  7. 移行の進行状況を監視します。
  8. 移行を完了します (連続モードの場合)。

バックアップと復元

SQL Managed Instance の主な機能は、.bak に格納されているデータベース バックアップ () ファイルをネイティブに復元する機能です。 この機能により、データベースの移行が簡単になります。 バックアップと復元は、データベースのサイズに基づく非同期操作です。

次の図は、プロセスの概要を示しています。

図は、AZURE Storage に流れる [BACKUP] または [URL へのアップロード] という矢印と、AZURE Storage から SQL マネージド インスタンスに流れる URL から RESTORE というラベルが付いた 2 番目の矢印を持つ SQL Server を示しています。

バックアップを取得して Azure Storage にアップロードし、SQL Managed Instance にネイティブ復元操作を実行する時間は、データベースのサイズによって異なります。 大規模なデータベースの操作に対応するために十分なダウンタイムを考慮します。

次の表は、実行しているソース SQL Server のバージョンに応じて、使用できるメソッドの詳細を示しています。

手順 SQL エンジンとバージョン バックアップ/復元方法
Azure Storage へのバックアップの格納 Service Pack 1 CU2 で 2012 より前 Azure Storage に .bakファイルを直接アップロードする
2012 SP1 CU2 - 2016 非推奨の WITH CREDENTIAL 構文を使用して直接バックアップする
2016 以降のバージョン WITH SAS CREDENTIAL を使用して直接バックアップする
Azure Storage からマネージド インスタンスに復元する SAS 資格情報での URL からの復元

重要

ネイティブ復元オプションを使用して Transparent Data Encryption (TDE) で保護されたデータベースを SQL マネージド インスタンスに移行する場合は、データベースを復元する前に、対応する証明書を SQL Server インスタンス (オンプレミスまたは Azure VM 上の SQL Server) から移行する必要があります。 詳細については、「 TDE で保護されたデータベースの証明書を Azure SQL Managed Instance に移行する」を参照してください。

システム データベースの復元はサポートされていません。 インスタンス レベルのオブジェクト ( master または msdb データベースに格納されている) を移行するには、それらをスクリプト化し、移行先インスタンスで Transact-SQL (T-SQL) スクリプトを実行します。

バックアップと復元を使用して移行するには、次の手順に従います。

  1. データベースを Azure Blob Storage にバックアップします。 たとえば、SQL Server Management Studio[backup to url](URL へのバックアップ) を使用します。 Microsoft Azure ツールを使用して、SQL Server 2012 Service Pack 1 CU2 より前のデータベースをサポートします。

  2. SQL Server Management Studio (SSMS) を使用して SQL マネージド インスタンスに接続します。

  3. データベース バックアップがある Azure Blob Storage のアカウントにアクセスするために、Shared Access Signature を使用して資格情報を作成します。 次に例を示します。

    CREATE CREDENTIAL [https://mitutorials.blob.core.windows.net/databases]
    WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
         SECRET = '<secret>'
    
  4. Azure Storage Blob コンテナー内のバックアップを復元します。 次に例を示します。

    RESTORE DATABASE [TargetDatabaseName]
    FROM URL = 'https://mitutorials.blob.core.windows.net/databases/WideWorldImporters-Standard.bak'
    
  5. 復元が完了したら、SSMS 内の オブジェクト エクスプローラー でデータベースを表示します。

この移行オプションの詳細については、「クイックスタートSSMS を使用して Azure SQL Managed Instance にデータベースを復元する」を参照してください。

データベースの復元操作は非同期であり、再試行できます。 接続が切断された場合、またはタイムアウトが切れると、SSMS でエラーが発生する可能性があります。 Azure SQL Database はバックグラウンドでデータベースの復元を試み続け、 sys.dm_exec_requests ビューと sys.dm_operation_status ビューを使用して復元の進行状況を追跡できます。

Azure Database Migration Service (Azure DMS)

このセクションでは、Azure DMS を使用して最小限のダウンタイムで SQL Server から SQL Managed Instance に移行する手順の概要について説明します。 詳細については、「 チュートリアル: SQL Server を Azure SQL Managed Instance にオンラインで移行する」を参照してください。

Azure portal から DMS を使用して移行するには、次の手順に従います。

  1. Azure Portalを開きます。

  2. Azure DMS を開き、既に作成している場合は DMS インスタンスを選択するか、新しく作成します。

  3. DMS インスタンス ダッシュボードで、[ 移行の開始] を選択し、ソース サーバーの種類を選択し、ターゲット サーバーの種類を Azure SQL Managed Instance に設定して、移行バックアップ ファイルの保存場所と移行モードを選択します。

  4. サブスクリプション、リソース グループ、場所、SQL Server インスタンス名など、Azure のソース SQL Server 追跡の詳細を指定します。 この手順では、Azure Arc で有効になっている SQL Server インスタンスを作成します。

  5. ターゲット サブスクリプションとリソース グループを指定し、ターゲット SQL マネージド インスタンスを選択します。

  6. リソース グループ、ストレージ アカウント、BLOB コンテナー、フォルダー、最後のバックアップ ファイル (オフライン移行モードの場合)、ターゲット データベースなどのバックアップ場所の詳細を指定します。

  7. 省略可能: バックアップがオンプレミスのネットワーク共有上にある場合は、ソース SQL Server に接続できるマシンと、バックアップ ファイルを含む場所にセルフホステッド統合ランタイムをダウンロードしてインストールします。

    1. 接続するには、ソース SQL Server インスタンスの詳細と資格情報を指定する必要がある場合があります。

    2. さらに、バックアップ ファイルを保持するネットワーク SMB ファイル共有のデータベースと場所と、それに接続するための資格情報を選択します。

  8. DMS インスタンス監視ダッシュボードから、データベースの移行を開始し、Azure portal で進行状況を監視します。

  9. 一括移行を完了します。

    1. ソース データベースに送信されるすべてのトランザクションを停止します。

    2. アプリケーション構成を変更し、Azure SQL Managed Instance 上のターゲット データベースをポイントするようにします。

    3. 指定したバックアップの場所にあるソース データベースのログ末尾バックアップを実行します。

    4. 監視の詳細ページで、すべてのデータベースバックアップのステータスが[復元済み]であることを確認してください。

    5. 監視の詳細ページで [フェールオーバーを完了する] を選択します。

      詳細な手順については、「 チュートリアル: DMS を使用して SQL Server を Azure SQL Managed Instance に移行する」を参照してください。

Azure Data Studio で DMS を使用して移行するには、次の手順に従います。

  1. Azure Data StudioAzure Data Studio の Azure SQL 移行拡張機能をダウンロードしてインストールします。

  2. Azure Data Studio の拡張機能で Migrate to Azure SQL Migration ウィザードを起動します。

  3. 評価用のデータベースを選択し、移行の準備状況または問題 (存在する場合) を表示します。 さらに、パフォーマンス データを収集し、適切なサイズの Azure レコメンデーションを取得します。

  4. サブスクリプションから Azure アカウントとターゲットの Azure SQL マネージド インスタンスを選択します。

  5. データベース バックアップの場所を選択します。 データベース バックアップは、オンプレミスのネットワーク共有または Azure Blob Storage コンテナーに置くことができます。

  6. Azure Data Studio のウィザードを使用して、新しい Azure DMS インスタンスを作成します。 以前に Azure Data Studio を使用して DMS インスタンスを作成した場合は、必要に応じて同じインスタンスを再利用できます。

  7. オプション: バックアップがオンプレミスのネットワーク共有上にある場合は、ソース SQL Server インスタンスに接続できるマシンと、バックアップ ファイルを含む場所に セルフホステッド統合ランタイム をダウンロードしてインストールします。

  8. データベースの移行を開始し、Azure Data Studio での進行状況を監視します。 Azure portal の DMS リソースで進行状況を監視することもできます。

  9. 一括移行を完了します。

    1. ソース データベースに送信されるすべてのトランザクションを停止します。

    2. アプリケーション構成を変更し、Azure SQL Managed Instance 上のターゲット データベースをポイントするようにします。

    3. 指定したバックアップの場所にあるソース データベースのログ末尾バックアップを実行します。

    4. 監視の詳細ページで、すべてのデータベースバックアップのステータスが[復元済み]であることを確認してください。

    5. 監視の詳細ページで [フェールオーバーを完了する] を選択します。

Azure Arc での SQL Server の移行

Azure Portal を使用して、Azure Arc で有効になっている SQL Server インスタンスを SQL Managed Instance に移行します。 SQL Managed Instance には、リフト アンド シフト移行用のフル マネージド PaaS ソリューションが用意されています。 このプロセスには、準備状況の評価、ターゲットの選択、データの移行、進行状況の監視が含まれます。

次の 2 つの統合メソッドを使用できます。

  • 最小限のダウンタイムでほぼリアルタイムのレプリケーションのための Managed Instance リンク。

  • 継続的なバックアップと復元のためのログ再生サービス。

Microsoft Copilot は、移行全体を通して支援します。 移行では、SQL Server 2012 以降のバージョンがサポートされ、ほとんどの手順が自動化されます。

詳細については、「 Azure SQL Managed Instance への移行 - Azure Arc での SQL Server の移行」を参照してください。

データの同期と切り替え

ソースからターゲットへのデータ変更を継続的にレプリケートまたは同期する移行オプションを使用すると、ソース データとスキーマが変更され、ターゲットから誤差が発生する可能性があります。 データ同期中に、移行プロセスがソース上のすべての変更をキャプチャし、ターゲットに適用することを確認します。

ソースとターゲットの両方でデータが同じであることを確認した後、ソース環境からターゲット環境に切り替えることができます。 カットオーバー中の中断を最小限に抑え、ビジネス継続性に影響しないように、ビジネス チームとアプリケーション チームとのカットオーバー プロセスを計画します。

重要

DMS を使用した移行の一環として切り替えを実行する場合、それに関連する特定の手順について詳しくは、移行カットオーバーの実行に関するページを参照してください。

移行後

移行ステージが正常に完了した後、移行後の一連のタスクを実行し、すべてが円滑かつ効率的に機能することを確認します。

移行後の段階は、発生したデータの精度の問題を調整したり、完全性を検証したり、ワークロードでのパフォーマンスの問題に対処したりするために非常に重要です。

アプリケーションの監視と修復

SQL マネージド インスタンスに移行した後、ワークロードのアプリケーションの動作とパフォーマンスを追跡します。 このプロセスには、次のアクティビティが含まれます。

テストを実行する

データベース移行のテストア プローチは、次のアクティビティで構成されています。

  1. 検証テストを開発する: データベースの移行をテストするには、T-SQL クエリを使用します。 ソース データベースとターゲット データベースの両方に対して実行する検証クエリを作成します。 検証クエリには、定義したスコープが含まれている必要があります。

  2. テスト環境を設定する: テスト環境には、ソース データベースとターゲット データベースのコピーが含まれている必要があります。 必ずテスト環境を分離してください。

  3. 検証テストを実行する: ソースとターゲットに対して検証テストを実行し、結果を分析します。

  4. パフォーマンス テストの実行: ソースとターゲットに対してパフォーマンス テストを実行し、結果を分析して比較します。

高度な機能を使用する

組み込みの高可用性脅威検出、ワークロードの監視とチューニングなど、SQL Managed Instance によって提供される高度なクラウドベースの機能を利用します。

Azure SQL Analytics を使用すると、一元化された方法で多数の SQL マネージド インスタンスを監視できます。

一部の SQL Server 機能は、 データベース互換性レベル を最新の互換性レベルに変更した場合にのみ使用できます。