移行ガイド:SQL Server から Azure Virtual Machines 上の SQL Server

適用対象: Azure Virtual Machines 上の SQL Server

このガイドでは、ユーザーの要件に基づくツールと手法を使用して、ユーザー データベースを、SQL Server から Azure Virtual Machines 上の SQL Server のインスタンスに 移行する方法について説明します。

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

移行

移行前段階の手順を完了したら、ユーザー データベースとコンポーネントを移行する準備が整います。 お望みの移行方法を使用して、データベースを移行します。

次のセクションでは、優先順に移行を実行するためのオプションを示します。

Azure Data Studio 用の Azure SQL Migration 拡張機能を使用して移行する (最小限のダウンタイム)

Azure Data Studio を使用して最小限のダウンタイムでの移行を実行するには、次の大まかな手順に従います。 詳細なステップバイステップのチュートリアルについては、「ュートリアル DMSを使用してSQL ServerをAzure仮想マシン上のSQL Serverに移行する」を参照してください。

  1. Azure Data StudioAzure SQL Migration 拡張機能をダウンロードしてインストールします。
  2. Azure Data Studio の拡張機能で Azure SQL への移行ウィザードを起動します。
  3. 評価用のデータベースを選択し、移行の準備状況または問題 (存在する場合) を表示します。 さらに、パフォーマンス データを収集し、適切なサイズの Azure レコメンデーションを取得します。
  4. サブスクリプションから Azure アカウントと Azure マシン上のターゲット SQL Server を選択します。
  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 Virtual Machine 上の SQL Server のターゲット データベースをポイントするようにします。
    3. 指定されたバックアップ場所で、ソース データベースのログ末尾のバックアップを行います。
    4. 監視の詳細パッケージで、すべてのデータベース バックアップの状態が [復元された] になっていることを確認します。
    5. 監視の詳細ページで [一括を完了する] を選択します。

バックアップと復元

バックアップと復元を使用した標準の移行を実行するには:

  1. 要件に基づいて、Azure Virtual Machines 上の SQL Server への接続を設定します。 詳細については、「Azure 上の SQL Server 仮想マシンへの接続」を参照してください。
  2. 移行の対象となるデータベースを使用しているアプリケーションを一時停止または停止します。
  3. シングル ユーザー モードを使用して、ユーザー データベースが非アクティブであることを確認します。
  4. オンプレミスの場所へのデータベースの完全バックアップを実行します。
  5. リモート デスクトップ、Azure Data Explorer、または AzCopy コマンド ライン ユーティリティを使用して、オンプレミスのバックアップ ファイルを自分の VM にコピーします。 (2 TB を超えるバックアップをお勧めします)。
  6. データベースの完全バックアップを Azure Virtual Machines 上の SQL Server に復元します。

URL からデタッチとアタッチを行う

データベースとログ ファイルをデタッチし、Azure Blob Storage に転送します。 その後、Azure VM で URL からデータベースをアタッチします。 物理データベース ファイルを BLOB ストレージに格納したい場合は、この方法を使用します。これは、非常に大規模なデータベースで役に立つことがあります。 この手動による方法を使用してユーザー データベースを移行するには、次の一般的な手順を実行します。

  1. オンプレミスのデータベース インスタンスからデータベース ファイルをデタッチします。
  2. デタッチされたデータベース ファイルを、AzCopy コマンド ライン ユーティリティを使用して Azure Blob Storage にコピーします。
  3. データベース ファイルを、Azure URL から Azure VM の SQL Server のインスタンスにアタッチします。

VM に変換して URL にアップロードし、新しい VM としてデプロイする

オンプレミスの SQL Server インスタンスのすべてのシステムとユーザー データベースを Azure 仮想マシンに移行するときはこの方法を使用します。 この手動による方法を使用して SQL Server インスタンス全体を移行するには、次の一般的な手順を実行します。

  1. 物理マシンまたは仮想マシンを Hyper-V VHD に変換します。
  2. Add-AzureVHD コマンドレットを使用して、VHD ファイルを Azure Storage にアップロードします。
  3. アップロードした VHD を使用して、新しい仮想マシンをデプロイします。

Note

アプリケーション全体を移行するには、Azure Site Recoveryを使用することを検討します。

ログ配布

ログ配布では、オンプレミスから Azure VM 上の SQL Server のインスタンスにトランザクション ログ ファイルをレプリケートします。 このオプションによって、フェイルオーバー時のダウンタイムを最小限に抑えられます。また、Always On 可用性グループを設定するよりも構成のオーバーヘッドが少なくなります。

詳細については、「ログ配布テーブルとストアド プロシージャ」を参照してください。

ハード ドライブを発送する

ネットワーク経由のアップロードが実現不可能であるか、非常にコストがかかる場合には、Windows の Import/Export サービス方法を使用して、ファイルの大量のデータを Azure BLOB ストレージに転送します。 このサービスでは、データを含む 1 台以上のハード ドライブを Azure データ センターに発送し、そのデータ センターでデータがストレージ アカウントにアップロードされます。

ユーザー データベース外のオブジェクトを移行する

ユーザー データベースの移行後のシームレスな運用には、追加の SQL Server オブジェクトが必要な場合があります。

次の表では、コンポーネントと (ユーザー データベースの移行の前後に完了できる) 推奨の移行方法の一覧を示します。

機能 コンポーネント 移行の方法
データベース モデル SQL Server Management Studio でスクリプトを使用します。
tempdb データベース 最善のパフォーマンスが得られるように、Azure VM 一時ディスク (SSD) への tempdb の移動を計画します。 自分の tempdb に合わせて、十分なローカル SSD を備えた VM サイズを選択してください。
FileStream を使用したユーザー データベース バックアップと復元の方法を使用して移行します。 Data Migration Assistant では、FileStream を使用したデータベースはサポートされません。
Security SQL Server と Windows のログイン Data Migration Assistant を使用して、ユーザー ログインを移行します。
SQL Server ロール SQL Server Management Studio でスクリプトを使用します。
暗号化プロバイダー Azure Key Vault の使用に切り替えることをお勧めします。 この手順では、SQL IaaS Agent 拡張機能を使用します。
サーバー オブジェクト バックアップ デバイス Azure Backup を使用してデータベース バックアップを置換します。または、Azure Storage にバックアップを書き込みます (SQL Server 2012 SP1 CU2 +)。 この手順では、SQL IaaS Agent 拡張機能を使用します。
リンク サーバー SQL Server Management Studio でスクリプトを使用します。
サーバー トリガー SQL Server Management Studio でスクリプトを使用します。
レプリケーション ローカル パブリケーション SQL Server Management Studio でスクリプトを使用します。
ローカル サブスクライバー SQL Server Management Studio でスクリプトを使用します。
PolyBase PolyBase SQL Server Management Studio でスクリプトを使用します。
管理 データベース メール SQL Server Management Studio でスクリプトを使用します。
SQL Server エージェント ジョブ SQL Server Management Studio でスクリプトを使用します。
警告 SQL Server Management Studio でスクリプトを使用します。
オペレーター SQL Server Management Studio でスクリプトを使用します。
プロキシ SQL Server Management Studio でスクリプトを使用します。
オペレーティング システム ファイル、ファイル共有 SQL Server で使用されるその他のファイルまたはファイル共有をメモしておいて、Azure Virtual Machines ターゲットにレプリケートします。

移行後

移行段階が正常に完了したら、移行後の一連のタスクを完了し、すべてが可能な限り円滑かつ効率的に機能していることを確認する必要があります。

アプリケーションを修復する

データがターゲット環境に移行された後、以前にソースを使用していたすべてのアプリケーションは、ターゲットの使用を開始する必要があります。 このタスクを実現するには、アプリケーションの変更が必要な場合があります。

Data Migration Assistant で推奨されている修正をユーザー データベースに適用します。 一貫性を確保し、自動化を可能にするために、これらの修正プログラムをスクリプトにする必要があります。

テストを実行する

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

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

ヒント

ターゲット SQL Server パフォーマンスを評価するには、Database Experimentation Assistant を使用するのが便利です。

最適化

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

それらの問題と、軽減する手順の詳細については、こちらを参照してください。