移行ガイド: SQL Server から Azure SQL Database

適用対象:SQL ServerAzure SQL Database

このガイドでは、SQL Server インスタンスを Azure SQL Database に移行する方法について説明します。

オンプレミスまたは次で実行されている SQL Server を移行できます。

  • SQL Server on Virtual Machines
  • Amazon EC2 (Elastic Compute Cloud)
  • SQL Server 用 Amazon RDS (Relational Database Service)
  • Google Compute Engine
  • Cloud SQL for SQL Server - GCP (Google Cloud Platform)

移行の詳細については、移行の概要に関するページを参照してください。 その他の移行ガイドについては、データベースの移行に関するページを参照してください。

Diagram of migration process flow.

前提条件

Azure SQL Database に SQL Server を移行する場合は、以下が満たされていることを確認します。

移行前

ソース環境がサポートされていることを確認した後、移行前ステージから開始します。 既存のデータ ソースをすべて検出し、移行が可能かどうかを評価し、Azure クラウドの移行の阻害要素となる可能性のある問題を特定します。

発見

検出フェーズでは、ネットワークをスキャンして、組織で使用されているすべての SQL Server インスタンスと機能を特定します。

Azure Migrate を使用して、オンプレミス サーバーの移行の適合性を評価し、パフォーマンスに基づくサイズ変更を行い、Azure でそれらのサーバーを実行するためのコストを見積もります。

または、Microsoft Assessment and Planning Toolkit  ("MAP Toolkit") を使用して、現在の IT インフラストラクチャを評価します。 ツールキットには、移行計画のプロセスを簡略化するための強力なインベントリ、評価、およびレポート ツールが用意されています。

検出フェーズで使用できるツールの詳細については、「データ移行のシナリオで利用できるサービスとツール」を参照してください。

アクセス

Note

VMware 上の SQL Server データ資産全体を大規模に評価している場合は、Azure Migrate を使用して、Azure SQL デプロイに関する推奨事項、ターゲットのサイズ設定、月単位の見積もりを取得します。

データ ソースが検出された後、Azure SQL Database に移行できるオンプレミスの SQL Server データベースを評価して、移行の阻害要素や互換性の問題を明らかにします。

Azure Data Studio 用の Azure SQL Azure SQL Migration 拡張機能は、評価を実行し、Azure レコメンデーションを取得して、オンプレミスの SQL Server データベースを Azure Virtual Machines 上の SQL Server に移行する、ウィザード ベースのシームレスなエクスペリエンスを提供します。 移行の阻害要因や警告を強調表示する以外にも、拡張機能にはデータベースのパフォーマンス データを収集するための Azure レコメンデーションのオプションも含まれていて、ワークロードのパフォーマンス ニーズを (最小価格で) 満たす適切なサイズの Azure SQL Managed Instance を推奨します。

Azure Data Studio の Azure SQL Migration 拡張機能を使用して、データベースを評価し、次の情報を取得できます。

Azure SQL Migration 拡張機能を使用してご自分の環境を評価するには、次の手順に従います。

  1. Azure Data Studio 用の Azure SQL Migration 拡張機能を開きます。
  2. 移行元の SQL Server インスタンスに接続します
  3. Azure Data Studio の Azure SQL Migration ウィザードで、[Azure SQL に移行] ボタンをクリックします
  4. 評価用のデータベースを選択し、[次へ] をクリックします
  5. 移行先の Azure SQL を選択します。この場合はAzure SQL Database (プレビュー) です
  6. [表示/選択] をクリックして評価レポートを確認します
  7. 移行のブロックと機能パリティの問題を探します。 評価レポートはファイルにエクスポートすることもできます。このファイルを、組織内の他のチームや担当者と共有できます。
  8. 移行後の作業が最小限になるようなデータベース互換レベルを特定します。

Azure SQL Migration 拡張機能を使用して Azure の推奨事項を取得するには、次の手順に従います。

  1. Azure Data Studio 用の Azure SQL Migration 拡張機能を開きます。
  2. 移行元の SQL Server インスタンスに接続します
  3. Azure Data Studio の Azure SQL Migration ウィザードで、[Azure SQL に移行] ボタンをクリックします
  4. 評価用のデータベースを選択し、[次へ] をクリックします
  5. 移行先の Azure SQL を選択します。この場合はAzure SQL Database (プレビュー) です
  6. [Azure の推奨事項] セクションに移動し、[Azure の推奨事項を取得する] をクリックします
  7. [Collect performance data now] (今すぐパフォーマンス データを収集する) を選択します。 パフォーマンス ログの格納先となるローカル コンピューター上のフォルダーを選択し、[Start] (開始) を選択します。
  8. 10 分後、Azure SQL Database のレコメンデーションが利用可能になった旨が Azure Data Studio から伝えられます。
  9. 移行先の Azure SQL パネルで Azure SQL Database カードを確認し、Azure SQL Database SKU の推奨事項を確認します

詳細については、「チュートリアル: Azure Data Studio で SQL Server を Azure SQL Database (プレビュー) にオフライン移行する」を参照してください。

データベースで Azure SQL Database に移行する準備が整っていないことを示す複数の阻害要素が評価で検出された場合は、代わりに次のことを検討します。

スケーリングされた評価と分析

Azure Data Studio の Azure SQL Migration 拡張機能Azure Migrate では、スケーリングされた評価の実行と分析のための評価レポートの統合がサポートされています。

複数のサーバーとデータベースがあり、それらを大規模に評価および分析して、データ資産を広範囲に確認する必要がある場合は、以下のリンクを参照して詳細を確認してください。

重要

複数のデータベースの大規模な評価 (特に大規模なもの) も、DMA のコマンド ライン ユーティリティを使用して自動化し、さらに分析を行ってターゲットを準備するために Azure Migrate にアップロードできます。

最適なサイズに設定されたマネージド インスタンスにデプロイする

Azure Data Studio 用の Azure SQL Migration 拡張機能を使用して、適切なサイズの Azure SQL Managed Instance のレコメンデーションを取得できます。 この拡張機能を使用すると、ソース SQL Server インスタンスからパフォーマンス データが収集され、最小限のコストでワークロードのパフォーマンス ニーズを満たす適切なサイズの Azure レコメンデーションが提供されます。 詳細については、「オンプレミスの SQL Server データベースに適したサイズの Azure レコメンデーションを取得する」を参照してください

検出と評価フェーズの情報に基づいて、適切なサイズの移行先の Azure SQL Database を作成します。 これを行うには、「クイック スタート: 単一データベースを作成する - Azure SQL Database」を使用します。

移行

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

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

Azure Data Studio 用 Azure SQL Migration 拡張機能を使用して移行する

Azure Data Studio を使用してオフラインで移行を実行するには、次の大まかな手順に従います。 詳細なステップバイステップ チュートリアルについては、「チュートリアル: Azure Data Studio で SQL Server を Azure SQL Database (プレビュー) にオフライン移行する」を参照してください。

  1. Azure Data StudioAzure SQL Migration 拡張機能をダウンロードしてインストールします。
  2. Azure Data Studio の拡張機能で Azure SQL Migration ウィザードを起動します。
  3. 評価用のデータベースを選択し、移行の準備状況または問題 (存在する場合) を表示します。 さらに、パフォーマンス データを収集し、適切なサイズの Azure レコメンデーションを取得します。
  4. サブスクリプションから Azure アカウントと移行先の Azure SQL Database を選択します。
  5. 移行するテーブルのリストを選択します。
  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 リソースで進行状況を監視することもできます。

データの同期と切り替え

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

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

重要

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

Transactional Replication を使用して移行する

移行中、SQL Server データベースを運用から外す余裕がない場合、移行ソリューションとして SQL Server トランザクション レプリケーションを使用できます。 この方法を使用するには、ソース データベースがトランザクション レプリケーションの要件を満たしているほか、Azure SQL Database に対する互換性を持っている必要があります。 可用性グループを使った SQL レプリケーションの詳細については、Always On 可用性グループのレプリケーションの構成 (SQL Server) に関する記事をご覧ください。

このソリューションを使用するには、Azure SQL Database のデータベースを、移行対象の SQL Server インスタンスへのサブスクライバーとして構成します。 トランザクション レプリケーション ディストリビューターは、新しいトランザクションが続く間、同期対象のデータベース (パブリッシャー) からデータを同期します。

トランザクション レプリケーションでは、データやスキーマのすべての変更が Azure SQL Database のデータベースに表示されます。 同期が完了し、移行の準備ができたら、アプリケーションの接続文字列を変更し、データベースをポイントするようにします。 トランザクション レプリケーションがソース データベースに残っているすべての変更を抜き取り、すべてのアプリケーションが Azure SQL Database をポイントしたら、トランザクション レプリケーションをアンインストールできます。 これで、Azure SQL Database のデータベースが実稼働システムになります。

ヒント

トランザクション レプリケーションを使用して、ソース データベースの一部を移行することもできます。 Azure SQL Database に複製するパブリケーションは、複製されるデータベースのテーブルの一部に制限できます。 複製されるテーブルごとに、行の一部または列の一部にデータを制限できます。

トランザクション レプリケーションのワークフロー

重要

最新バージョンの SQL Server Management Studio を使用して、Azure と SQL Database の更新プログラムとの同期を維持します。 以前のバージョンの SQL Server Management Studio では、サブスクライバーとして SQL Database を設定できません。 最新バージョンの SQL Server Management Studio を入手します

手順 Method
ディストリビューションを設定する SQL Server Management Studio | Transact-SQL
パブリケーションを作成する SQL Server Management Studio | Transact-SQL
サブスクリプションの作成 SQL Server Management Studio | Transact-SQL

SQL Database への移行に関するヒントと相違点

  • ローカル ディストリビューターを使用します。
    • これにより、サーバーのパフォーマンスに影響が生じます。
    • パフォーマンスへの影響を許容できない場合は、別のサーバーを使用できますが、管理がさらに複雑になります。
  • スナップショット フォルダーを選択する際は、選択したフォルダーが、レプリケートするすべてのテーブルの BCP を保持するのに十分な大きさであることを確認してください。
  • スナップショットの作成では、その処理が完了するまで関連付けられたテーブルがロックされるため、スナップショットは適宜スケジュールしてください。
  • Azure SQL Database でサポートされているのは、プッシュ サブスクリプションのみです。 サブスクライバーを追加できるのは、ソース データベースからのみです。

移行の推奨事項

Azure SQL Database への移行を高速化するには、次の推奨事項を考慮する必要があります。

リソースの競合 推奨
ソース (通常はオンプレミス) ソースからの移行時の主なボトルネックはデータ ファイルの I/O と待ち時間であり、慎重に監視する必要があります。 データ ファイルの I/O と待ち時間に基づき、仮想マシンと物理サーバーのどちらであるかに応じて、ストレージ管理者と連携してボトルネックを軽減するためのオプションを検討することが必要な場合があります。
ターゲット (Azure SQL Database) 最大の制限要因は、データベース ログ ファイルでのログの生成速度と待ち時間です。 Azure SQL Database では、最大 96 MB/秒のログ生成速度を実現できます。 移行を高速化するには、ターゲットの Azure SQL データベースを Business Critical Gen5 8 仮想コアにスケールアップして、ログの最大生成速度である 96 MB/秒を実現します。それにより、ログ ファイルの待ち時間も短縮されます。 Hyperscale サービス レベルでは、選択したサービス レベルに関係なく、100 MB/秒のログ速度が提供されます。
Network 必要なネットワーク帯域幅は、最大ログ インジェスト速度の 96 MB/秒 (768 Mb/秒) と同じです オンプレミスのデータ センターから Azure へのネットワーク接続に応じて、ネットワーク帯域幅 (通常は Azure ExpressRoute) を確認し、ログの最大取り込み速度に対応します。

移行プロセスの間のパフォーマンスを最適にするため、これらの推奨事項を検討することもできます。

  • 転送のパフォーマンスを最大限に高めるために、予算が許す限り最も高いサービス レベルとコンピューティング サイズを選択する。 移行の完了後にスケールダウンすることでコストを削減できます。
  • BACPAC ファイルを使っている場合、BACPAC ファイルと移行先のデータ センターの間の距離を最短にする。
  • 移行の間は統計の自動更新と自動作成を無効にする。
  • パーティション テーブルとインデックス。
  • インデックス付きビューを削除し、完了したら作成し直す。
  • ほとんど照会されない履歴データを別のデータベースに移動し、この履歴データを Azure SQL Database の別のデータベースに移行する。 その後、この履歴データは、エラスティック クエリを使用して照会できます。

移行後

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

移行後フェーズは、データの精度の問題を調整するため、完全性を確認するため、およびワークロードのパフォーマンスの問題に対処するために非常に重要です。

統計を更新します。

移行が完了した後に、フル スキャンを実施して統計を更新します。

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

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

テストを実行する

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

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

高度な機能を使用する

組み込みの高可用性脅威検出ワークロードの監視と調整など、SQL Database によって提供されるクラウドベースの高度な機能を利用してください。

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

詳細については、移行後の Azure SQL Database の管理に関するページを参照してください。

データベース移行の互換性に関する問題を解決する

ソース データベースの SQL Server のバージョンと移行するデータベースの複雑さに応じて、さまざまな互換性の問題が発生する可能性があります。 SQL Server のバージョンが古いほど、互換性の問題が多く発生します。 任意の検索エンジンを使用する対象のインターネット検索に加え、以下のリソースを使用します。

重要

Azure SQL Managed Instance を使用すると、互換性の問題をゼロまたは最小限に抑えながら、既存の SQL Server インスタンスとそのデータベースを移行できます。 「Azure SQL Managed Instance とは」をご覧ください

次のステップ

さまざまなデータベースとデータの移行シナリオ、および特殊なタスクに役立つ Microsoft とサードパーティ製のサービスとツールの一覧については、データ移行のためのサービスとツールに関するページを参照してください。

Azure SQL Migration 拡張機能の詳細については、次を参照してください。

Azure Migrate の詳細については、以下を参照してください。

SQL Database の詳細については、以下を参照してください。

クラウド移行のためのフレームワークと導入サイクルの詳細については、次を参照してください。

アプリケーション アクセス層を評価するには、「Data Access Migration Toolkit (プレビュー)」を参照してください。

データ アクセス レイヤーの A/B テストの実行方法について詳しくは、Database Experimentation Assistant についてのページを参照してください。