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

適用対象: Azure SQL Managed Instance

このガイドでは、SQL Server を SQL Managed Instance に移行する方法について説明します。

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

移行

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

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

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

  • Managed Instance リンク
  • ログ再生サービス (LRS)
  • Azure Data Studio 用の Azure SQL Migration 拡張機能 - ダウンタイムがほぼゼロの移行。
  • ネイティブな RESTORE DATABASE FROM URL - SQL Server のネイティブ バックアップを使用し、ある程度のダウンタイムが必要。

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

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

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

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

Azure Data Studio

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

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

  1. Azure Data StudioAzure Data Studio の Azure SQL 移行拡張機能をダウンロードしてインストールします。
  2. Azure Data Studio の拡張機能で Azure SQL Migration ウィザードを起動します。
  3. 評価用のデータベースを選択し、移行の準備状況または問題 (存在する場合) を表示します。 さらに、パフォーマンス データを収集し、適切なサイズの Azure レコメンデーションを取得します。
  4. サブスクリプションから Azure アカウントとターゲットの Azure SQL Managed Instance を選択します。
  5. データベース バックアップの場所を選択します。 データベース バックアップは、オンプレミスのネットワーク共有または Azure Blob Storage コンテナーに置くことができます。
  6. Azure Data Studio のウィザードを使用して、新しい Azure Database Migration Service を作成します。 Azure Data Studio を使用して以前に Azure Database Migration Service を作成した場合は、必要に応じてそれを再利用できます。
  7. 省略可能: バックアップがオンプレミスのネットワーク共有上にある場合は、ソース SQL Server に接続できるマシンと、バックアップ ファイルを含む場所にセルフホステッド統合ランタイムをダウンロードしてインストールします。
  8. データベースの移行を開始し、Azure Data Studio での進行状況を監視します。 Azure portal の Azure Database Migration Service リソースで進行状況を監視することもできます。
  9. 一括移行を完了します。
    1. ソース データベースに送信されるすべてのトランザクションを停止します。
    2. アプリケーション構成を変更し、Azure SQL Managed Instance 上のターゲット データベースをポイントするようにします。
    3. 指定されたバックアップ場所で、ソース データベースのログ末尾のバックアップを行います。
    4. 監視の詳細パッケージで、すべてのデータベース バックアップの状態が [復元された] になっていることを確認します。
    5. 監視の詳細ページで [一括を完了する] を選択します。

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

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

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

ログ再生サービス (LRS)

このセクションでは、ログ再生サービス (LRS) を使用して、最小限のダウンタイムで SQL Server から Azure 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. 移行を完了します (連続モードの場合)。

バックアップと復元

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

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

SQL Server、Azure Storage に向かう

Note

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

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

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

重要

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

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

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

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

  2. SQL Server Management Studio を使用して Azure SQL Managed Instance に接続します。

  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. 復元が完了したら、SQL Server Management Studio 内のオブジェクト エクスプローラーでデータベースを確認します。

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

Note

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

データの同期と切り替え

データの変更をソースからターゲットに継続的にレプリケートおよび同期する移行オプションを使用している場合、ソースのデータとスキーマが変更され、ターゲットと食い違う可能性があります。 データの同期中にソースのすべての変更がキャプチャされ、移行プロセス中にターゲットに適用されるようにしてください。

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

重要

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

移行後

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

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

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

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

テストを実行する

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

  1. 検証テストを作成する: データベースの移行をテストするには、SQL クエリを使用する必要があります。 ソース データベースとターゲット データベースの両方に対して実行する検証クエリを作成する必要があります。 検証クエリには、定義したスコープが含まれている必要があります。
  2. テスト環境を設定する: テスト環境には、ソース データベースとターゲット データベースのコピーが含まれている必要があります。 必ずテスト環境を分離してください。
  3. 検証テストを実行する: ソースとターゲットに対して検証テストを実行してから、結果を分析します。
  4. パフォーマンス テストを実行する: ソースとターゲットに対してパフォーマンス テストを実行し、結果を分析して比較します。

高度な機能を使用する

SQL Managed Instance によって提供されるクラウドベースの高度な機能を活用できます。たとえば、組み込みの高可用性脅威検出ワークロードの監視と調整などです。

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

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