移行の概要: SQL Server から Azure SQL Database へ

適用対象:Azure 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)

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

概要

Azure SQL Database は、フル マネージドのサービスとしてのプラットフォーム (PaaS) を必要とする SQL Server ワークロードで推奨されるターゲット オプションです。 SQL Database は、ほとんどのデータベース管理機能を処理します。 また、多くのアプリケーションの種類に対応する高可用性、インテリジェントなクエリ処理、スケーラビリティ、パフォーマンスの機能が組み込まれています。

SQL Database では、さまざまな種類のアプリケーションやワークロードに対応する複数のデプロイ モデルサービス レベルによって柔軟性が提供されます。

SQL Database に移行する主な利点の 1 つは、PaaS 機能を使用してアプリケーションを最新化できることです。 その後、SQL Agent ジョブなどのインスタンス レベルでスコープ設定されている技術コンポーネントに対する依存関係を排除できます。

また、SQL Server の Azure ハイブリッド特典を使用して、SQL Server オンプレミスのライセンスを Azure SQL Database に移行することでコストを節約することもできます。 このオプションは、仮想コアベースの購入モデルを選択した場合に使用できます。

移行ターゲットのサポート可能性を検証するには、Azure SQL Database で利用可能な SQL Server データベース エンジンの機能を必ず確認してください。

考慮事項

移行のオプションを評価する際に考慮する必要がある主な要素は、次のとおりです。

  • サーバーとデータベースの数
  • データベースのサイズ
  • 移行プロセス中の許容可能なビジネス ダウンタイム

このガイドに記載されている移行オプションでは、これらの要因が考慮されています。 Azure SQL Database に論理データを移行する場合、移行に要する時間は、データベース内のオブジェクトの数とデータベースのサイズの両方によって決まります。

さまざまなワークロードとユーザー設定に応じたツールが用意されています。 一部のツールでは、UI ベースのツールを使用して 1 つのデータベースの移行を迅速に行うことができます。 他のツールでは、複数のデータベースの移行を自動化して、大規模な移行を処理できます。

適切なターゲットを選択する

Azure SQL Database の適切なデプロイ モデルとサービス レベルを選択する際に役立つ一般的なガイドラインを検討してください。 デプロイ時にコンピューティングとストレージのリソースを選択し、後で、アプリケーションのダウンタイムを発生させずに Azure portal を使用してそれらを変更できます。

デプロイ モデル: アプリケーション ワークロードと使用パターンを把握して、単一データベースとエラスティック プールのどちらにするかを決定します。

  • 単一データベースは、ほとんどの最新クラウド アプリケーションやマイクロサービスに適したフル マネージド データベースを表します。
  • エラスティック プールは、CPU やメモリなどのリソースの共有セットを含む単一データベースのコレクションです。 これは、プール内のデータベースを、予測可能な使用パターンと結合するのに適しています。それによって、同じリソース セットを効果的に共有できます。

購入モデル: 仮想コア、データベース トランザクション ユニット (DTU)、またはサーバーレスのいずれかの購入モデルを選択します。

  • 仮想コア モデルを使用すると、Azure SQL Database の仮想コアの数を選択できるため、オンプレミスの SQL Server から変換する場合の最も簡単な選択肢となります。 これは、Azure ハイブリッド特典を使用したライセンス コストの節約がサポートされる唯一のオプションです。
  • DTU モデルでは、組み合わされた DTU を提供するために、基になるコンピューティング、メモリ、I/O リソースが抽象化されます。
  • サーバーレス モデルは、1 秒あたりの使用量で課金されるコンピューティング リソースを使用した自動オンデマンド スケーリングを必要とするワークロードを対象としています。 サーバーレス コンピューティング レベルでは、非アクティブな期間はデータベースが自動的に一時停止されます (この場合、ストレージのみが課金されます)。 再びアクティブになると自動的にデータベースが再開されます

サービス レベル: 異なる種類のアプリケーション用に設計された 3 つのサービス レベルから選択します。

  • General Purpose/Standard サービス レベルでは、中間および下位レベルのアプリケーションの配信に適したコンピューティングとストレージを備えた、バランスの取れた予算重視のオプションが提供されます。 障害から復旧するための冗長性がストレージ レイヤーに組み込まれています。 ほとんどのデータベース ワークロード向けに設計されています。
  • Business Critical/Premium サービス レベルは、高いトランザクション レート、低遅延の I/O、および高レベルの回復性を必要とする上位レベル アプリケーション用です。 セカンダリ レプリカは、フェールオーバーと、読み取りワークロードのオフロードに使用できます。
  • Hyperscale サービス レベルは、より高いパフォーマンスと可用性、高速のバックアップと復元、高速ストレージとコンピューティングのスケーラビリティを必要とするすべてのお客様を対象としています。 これには、アプリケーションを最新化するためにクラウドに移行中のお客様、および Azure SQL Database の他のサービス レベルを既に使用しているお客様が含まれます。 Hyperscale サービス レベルでは、純粋な OLTP から純粋な分析まで、幅広いデータベース ワークロードがサポートされています。 OLTP およびハイブリッド トランザクションおよび分析処理 (HTAP) ワークロード用に最適化されています。

重要

高いインジェスト率を制限するために、Azure SQL Database ではトランザクション ログ速度が管理されています。 そのため、移行中に、CPU やスループットに対する負荷を軽減するために、ターゲット データベース リソース (仮想コアまたは DTU) のスケーリングが必要になる場合があります。 適切なサイズのターゲット データベースを選択してください。ただし、必要に応じて、移行のためにリソースをスケールアップすることを計画しておいてください。

代替手段 としての SQL Server VM

お客様のビジネスの要件によっては、Azure Virtual Machines 上の SQL Server の方が、Azure SQL Database よりも適切なターゲットである場合があります。

次のいずれかの条件がお客様のビジネスに当てはまる場合は、代わりに SQL Server 仮想マシン (VM) に移行することを検討してください。

  • サードパーティ製やカスタムのエージェントを SQL Server と同じ仮想マシンにインストールするためなど、オペレーティング システムやファイル システムへの直接アクセスが必要である。
  • FileStream や FileTable、PolyBase、クロスインスタンス トランザクションなど、まだサポートされていない機能に対して厳密な依存関係がある。
  • 特定バージョンの SQL Server (たとえば 2012 など) を維持する必要がある。
  • コンピューティング要件が、マネージド インスタンスで提供されているものよりはるかに低く (1 つの仮想コアなど)、データベース統合が許容可能な選択肢ではない。

移行ツール

次の移行ツールをお勧めします。

テクノロジ 説明
Azure Migrate この Azure サービスは、VMware 上で大規模に SQL データ資産を検出して評価するのに役立ちます。 Azure SQL デプロイに関する推奨事項、ターゲットのサイズ設定、月単位の見積もりが提供されます。
Azure Data Studio 用の Azure SQL Migration 拡張機能 Azure Database Migration Service を利用した Azure Data Studio の Azure SQL Migration 拡張機能は、移行の準備状況を把握するためのデータベース要件の評価、Azure リソースに対する適切なサイズの SKU の推奨事項の取得、SQL Server データベースの Azure への移行に役立ちます。 PowerShell と Azure CLI を使用して単一データベースまたは大規模に移行することができます。

次の表に、代替移行ツールを示します。

テクノロジ 説明
トランザクション レプリケーション トランザクションの一貫性を維持しながら、パブリッシャーとサブスクライバーの種類の移行オプションを指定することによって、ソース SQL Server データベース テーブルから Azure SQL Database にデータをレプリケートします。 データの増分変更は、パブリッシャーで発生したときにサブスクライバーに反映されます。
インポートまたはエクスポート サービス/BACPAC BACPAC は .bacpac 拡張子を持つ Windows ファイルで、データベースのスキーマとデータがカプセル化されています。 BACPAC を使用すると、SQL Server ソースからデータをエクスポートし、そのデータを Azure SQL Database にインポートできます。 BACPAC ファイルは、Azure portal を使用して新しい SQL データベースにインポートできます。

サイズが大きいデータベースまたは数が多いデータベースのスケールとパフォーマンスについては、SqlPackage コマンドライン ツールを使用してデータベースのエクスポートとインポートを行うことを検討してください。
一括コピー 一括コピー プログラム (bcp) ツールでは、SQL Server のインスタンスからデータ ファイルにデータをコピーします。 このツールを使用して、ソースからデータをエクスポートし、ターゲット SQL データベースにデータ ファイルをインポートします。

Azure SQL Database にデータを移動する高速一括コピー操作の場合、スマート一括コピー ツールを使用し、並列コピー タスクを利用して転送速度を最大化できます。
Azure Data Factory Azure Data Factory のコピー アクティビティでは、組み込みコネクタと統合ランタイムを使用して、ソース SQL Server データベースから Azure SQL Database にデータが移行されます。

Data Factory では、SQL Server ソースから Azure SQL Database にデータを移動するためのさまざまなコネクタがサポートされています。
SQL データ同期 SQL データ同期は、Azure SQL Database 上に構築されているサービスであり、選択したデータをオンプレミスおよびクラウドの複数のデータベース間で双方向に同期させることができます。データ同期は、Azure SQL Database または SQL Server の複数のデータベースにわたってデータを更新し続ける必要がある場合に便利です。

移行オプションを比較する

移行オプションを比較して、ビジネス ニーズに合ったパスを選択します。

次の表では、推奨される移行オプションを比較しています。

移行オプション 使用する場合 考慮事項
Azure Migrate - 単一データベース、またはさまざまな環境からの大規模な検出と評価。 - インフラストラクチャ、データ、アプリケーションに対して、オンプレミス リソースの検出、評価、適切なサイズ設定など、移行前のすべての手順が含まれています。
Azure Data Studio 用の Azure SQL Migration 拡張機能 - 単一データベースまたは大規模な移行を行う。
- オフライン モードのみ。

サポートされているソース:
- オンプレミス、または Azure Virtual Machines 上の SQL Server (2008 以降)
- Amazon EC2 上の SQL Server
- Amazon RDS for SQL Server
- Google Compute Engine 上の SQL Server
- 大規模な移行は、PowerShell または Azure CLI を使用して自動化できます。

- 移行が完了するまでの時間は、データベースのサイズとデータベース内のオブジェクトの数によって異なります。

- PowerShell または Azure CLI を使用していない場合は、Azure Data Studio が必要です。

次の表では、代替移行オプションを比較しています。

方法またはテクノロジ 使用する場合 考慮事項
トランザクション レプリケーション - ソース データベース テーブルからターゲット SQL Database テーブルに変更を継続的にパブリッシュすることによって移行する。
- データベースを完全に、または選択したテーブル (データベースのサブセット) について部分的に移行する。

サポートされているソース:
- SQL Server (2016 から 2019) (一部制限あり)
- AWS EC2
- GCP Compute SQL Server VM
- セットアップは、他の移行オプションと比べて比較的複雑です。
- (データベースをオフラインにせずに) データを移行するための継続的レプリケーション オプションが提供されます。
- トランザクション レプリケーションには、ソース SQL Server インスタンスにパブリッシャーを設定するときに考慮すべき制限があります。 詳細については、「オブジェクトのパブリッシュに関する制限事項」を参照してください。
- レプリケーション アクティビティを監視することができます。
インポートまたはエクスポート サービス/BACPAC - 個々の基幹業務アプリケーション データベースを移行する。
- 比較的小規模なデータベースに適している。
- 個別の移行サービスやツールを必要としない。

サポートされているソース:
- SQL Server (2005 から 2019) オンプレミスまたは Azure VM
- AWS EC2
- AWS RDS
- GCP Compute SQL Server VM
- データをソースでエクスポートし、転送先でインポートする必要があるため、ダウンタイムが必要です。
- 切り捨てやデータ型不一致のエラーを回避するために、エクスポートまたはインポートで使用されるファイル形式とデータ型は、テーブル スキーマと一致している必要があります。
- 多数のオブジェクトを含むデータベースをエクスポートするために要する時間は、大幅に長くなる可能性があります。
一括コピー - 完全または部分的なデータ移行を実行する。
- ダウンタイムを許容できる。

サポートされているソース:
- SQL Server (2005 から 2019) オンプレミスまたは Azure VM
- AWS EC2
- AWS RDS
- GCP Compute SQL Server VM
- データをソースからエクスポートするため、およびターゲットにインポートするためのダウンタイムが必要です。
- エクスポートまたはインポートで使用されるファイル形式とデータ型は、テーブル スキーマと一致している必要があります。
Azure Data Factory - ソース SQL Server データベースからのデータの移行や変換を行う。
- 通常、ビジネス インテリジェンス (BI) ワークロードのために、複数のデータ ソースから Azure SQL Database にデータをマージする。
- ソースからターゲットにデータを移動するために、Data Factory でデータ移動パイプラインを作成する必要がある。
- コストが重要な考慮事項であり、パイプライン トリガー回数、アクティビティの実行数、データ移動の期間などの要因に応じて変わる。
SQL データ同期 - ソースとターゲットのデータベース間でデータを同期する。
- 双方向のフローで Azure SQL Database とオンプレミスの SQL Server 間の継続的同期を実行するのに適している。
- Azure SQL Database をハブ データベースとし、オンプレミスの SQL Server データベースをメンバー データベースとして同期を行う必要があります。
- トランザクション レプリケーションと比較した場合、SQL データ同期では、オンプレミスと Azure SQL Database 間の双方向データ同期がサポートされます。
- ワークロードによっては、パフォーマンスに大きな影響を与える可能性があります。

機能の相互運用性

他の SQL Server 機能に依存するワークロードを移行する場合は、追加の考慮事項があります。

SQL Server Integration Services

SQL Server Integration Services (SSIS) パッケージを Azure Data Factory で Azure-SSIS ランタイムに再デプロイして、パッケージを Azure に移行します。 Azure Data Factory では、Azure で SSIS パッケージを実行するために構築されたランタイムを提供することによって、SSIS パッケージの移行がサポートされています。 または、 データ フローを使用して、SSIS ETL (抽出、変換、読み込み) のロジックを Azure Data Factory でネイティブに書き換えることができます。

SQL Server Reporting Services

SQL Server Reporting Services (SSRS) のレポートを、Power BI のページ分割されたレポートに移行します。 レポートの準備と移行には、RDL Migration ツールが役立ちます。 Microsoft では、ユーザーがレポート定義言語 (RDL) レポートを SSRS サーバーから Power BI に移行できるようにするために、このツールを開発しました。 GitHub から入手でき、移行シナリオのエンドツーエンドのチュートリアルが付属しています。

高可用性

Always On フェールオーバー クラスター インスタンスや Always On 可用性グループなど、SQL Server の高可用性機能の手動の設定は、ターゲットの SQL データベースでは廃止されます。 高可用性アーキテクチャは、Azure SQL Database の General Purpose (Standard 可用性モデル)Business Critical (Premium 可用性モデル) サービス レベルの両方に既に組み込まれています。 また、Business Critical/Premium サービス レベルでは、読み取り専用の目的でいずれかのセカンダリ ノードに接続できる読み取りスケールアウトも提供されています。

Azure SQL データベースに含まれる高可用性アーキテクチャに加えて、フェールオーバー グループ機能もあります。これを使用すると、マネージド インスタンス内のデータベースの別リージョンへのレプリケーションとフェールオーバーを管理できます。

ログインとグループ

Windows ログインは Azure SQL Database ではサポートされていません。代わりに Microsoft Entra ID (旧 Azure Active Directory) ログインを作成してください。 SQL ログインを手動で再作成します。

SQL Agent ジョブ

SQL Agent ジョブは、Azure SQL Database では直接サポートされていないため、エラスティック データベース ジョブ (プレビュー) にデプロイする必要があります。

システム データベース

Azure SQL Database の場合、適用できるシステム データベースは、mastertempdb のみになります。 詳細については、Azure SQL Database での tempdb に関する記事を参照してください。

高度な機能

SQL Database のクラウドベースの高度な機能をぜひ活用してください。 たとえば、バックアップの管理はサービスによって行われるため、もうそれについて心配する必要はありません。 保持期間内の任意の特定の時点に復元できます。

セキュリティを強化するために、Microsoft Entra 認証監査脅威の検出行レベル セキュリティ動的データ マスクの使用を検討してください。

高度な管理とセキュリティの機能に加えて、SQL Database にはワークロードの監視とチューニングに役立つツールが用意されています。 Azure SQL Analytics (プレビュー) は、Azure SQL Database のすべてのデータベースのパフォーマンスを、大規模に、かつ複数のサブスクリプションにわたって 1 つのビューで監視するための高度なソリューションです。 Azure SQL Analytics で組み込みのインテリジェンスを使用して重要なパフォーマンス メトリックを収集し、視覚化することによって、パフォーマンスのトラブルシューティングを行うことができます。

自動チューニングでは、SQL 実行プランのパフォーマンスが継続的に監視され、特定されたパフォーマンスの問題が自動的に修正されます。

移行資産

さらに支援が必要な場合は、実際の移行プロジェクトのために開発された次のリソースを参照してください。

Asset 説明
データ ワークロード評価モデルとツール このツールを使用すると、ワークロードに対して、推奨される "最適な" ターゲット プラットフォーム、クラウドの対応性、アプリケーションとデータベースの修復レベルがわかります。 シンプルなワンクリックの計算とレポート生成機能があり、自動化された均一なターゲット プラットフォームの決定プロセスが用意されているので、大規模な資産評価を迅速に行うことができます。
PowerShell を使用したデータベースの一括作成 リソース グループ (create_rg.ps1)、Azure の論理サーバー (create_sqlserver.ps1)、および SQL データベース (create_sqldb.ps1) を作成する 3 つの PowerShell スクリプト セットを使用できます。 スクリプトにはループ機能が含まれているので、必要に応じて反復処理を行って、必要な数のサーバーとデータベースを作成できます。
MSSQL-Scripter と PowerShell を使用したスキーマの一括デプロイ この資産では、リソース グループが作成され、Azure SQL Database をホストする 1 つまたは複数の Azure 内の論理サーバーが作成され、オンプレミスの SQL Server インスタンス (または複数の SQL Server (2005 以降) インスタンス) からすべてのスキーマがエクスポートされ、Azure SQL Database にインポートされます。
SQL Server エージェント ジョブをエラスティック データベース ジョブに変換する このスクリプトにより、ソースの SQL Server エージェント ジョブがエラスティック データベース ジョブに移行されます。
オンプレミスの SQL Server ログインを Azure SQL Database に移動するユーティリティ PowerShell スクリプトでは、ログインを再作成し、オンプレミスの SQL Server から Azure SQL Database へのデータベース ユーザーを選択するための T-SQL コマンド スクリプトを作成できます。 このツールを使用すると、Windows Server Active Directory アカウントを Microsoft Entra アカウントに自動的にマッピングできるだけでなく、必要に応じて SQL Server のネイティブ ログインを移行することもできます。
Logman を使用した Perfmon データ収集の自動化 Logman ツールを使用すると、Perfmon データを収集し (ベースライン パフォーマンスの把握に役立てるため)、移行ターゲットの推奨事項を取得できます。 このツールでは、logman.exe を使用して、リモート SQL Server インスタンスに設定されたパフォーマンス カウンターを作成、開始、停止、削除するコマンドを作成します。

データ SQL エンジニアリング チームが、これらのリソースを開発しました。 このチームの主要な作業は、Microsoft の Azure データ プラットフォームへのデータ プラットフォーム移行プロジェクトの複雑な近代化を容易にし、迅速に進めることです。

次のステップ