その他の移行方法を比較する

完了

Azure Migrate

Azure Migrate は、物理または仮想の SQL Server 全体を、現在の場所から Azure 仮想マシン上の SQL Server のインスタンスに、オペレーティング システムや SQL Server のバージョンに対する変更は何も行わずに移動するために使用できるリフト アンド シフトの移行戦略です。 移行中、ソース サーバーはオンラインのまま要求の処理を継続し、ソース サーバーと宛先サーバーの間ではデータが同期され、シームレスに近い移行を可能にします。

トランザクション レプリケーション

ダウンタイムを最小限に抑える必要があり、Always On のオンプレミス デプロイがない場合は、トランザクション レプリケーションを使用します。 移行したいオンプレミスの SQL Server データベースをパブリッシャーとして構成し、Azure 仮想マシン上の SQL Server をその SQL Server インスタンスへのプッシュ サブスクライバーとして構成できます。

この移行を使用するには、次の 3 つの基本的な手順を実行する必要があります。

  1. ディストリビューションの設定: レプリケーション トポロジ内でアーティクルの分配を行います。 アーティクルはデータベース オブジェクトです。 たとえば、"パブリケーション" に含まれているテーブルなどです。
  2. パブリケーションの作成: レプリケートされているデータベースの 1 つ以上のアーティクルのコレクション。
  3. サブスクリプションの作成: "パブリッシャー" からの "パブリケーション" を求める "サブスクライバー" からの要求。

テストを完了し、Azure 仮想マシンのサブスクライバー インスタンス上にデータベースが表示されたら、接続をサブスクライバー データベースに振り分けることができます。 データが正常に移行されたら、レプリケーションを停止して削除します。

ログ配布

ログ配布は、セカンダリ サーバー上のデータベースのスタンバイ コピーを維持するために、SQL Server で使用されるデータベース レプリケーションの手法です。 これにより、プライマリ (ソース) データベースから 1 つ以上のセカンダリ (宛先) サーバーへのトランザクション ログ ファイルの継続的バックアップが可能になります。

プライマリ データベースは完全に動作し続け、トランザクション ログ バックアップのソースとして機能します。 その後、トランザクション ログ バックアップはセカンダリ サーバー (複数も可) に自動的にコピーされて復元され、セカンダリ データベースをプライマリと同期した状態に保ちます。

移行シナリオで使用すると、これはフェールオーバー中の中断を最小限に抑え、Always On 可用性グループを立ち上げるよりもセットアップが少なくて済みます。

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

データベースのデタッチとアタッチ

データベースの移行に使用できるもう 1 つのオフライン メソッドは、データベースをデタッチした後、URL からアタッチすることです。 データベースとログ ファイルをデタッチし、Azure Storage アカウントに転送できます。 次に、Azure VM の BLOB URL からデータベースをアタッチします。

このメソッドは、物理データベース ファイルを Azure Storage に格納したい場合に便利です。 このオプションは、大規模なデータベースに対して使用することができます。 データベースとログ ファイルは、Azure Data Explorer または AzCopy コマンドライン ユーティリティのどちらかを通して転送できます。

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

この方法を使用して、オンプレミス SQL Server インスタンス内のすべてのシステム データベースとユーザー データベースを Azure 仮想マシンに移行します。 このアプローチを使用するべきなのは、独自の SQL Server ライセンスを持ち込む場合、古いバージョンの SQL Server で実行しているデータベースを移行する場合、または他のユーザー データベースまたはシステム データベース、あるいはその両方に依存するデータベースの移行の一部としてシステム データベースとユーザー データベースを合わせて移行する場合です。

インポートおよびエクスポート ウィザードまたは BACPAC

インポート プロセス用の .bacpac ファイルを使用して、SQL Server データベースを Azure 仮想マシン上の SQL Server に移行することを選択できます。 この .bacpac ファイルを使用すると、オンプレミスの場所にある Azure BLOB ストレージまたはローカル ストレージのどちらかからデータをインポートできます。 .bacpac ファイルは、データベースのメタデータとデータを含む圧縮ファイルです。

運用環境での最適なスケールとパフォーマンスのためには、SQLPackage ユーティリティを使用することをお勧めします。 テーブルのサブセットに対して複数の SqlPackage コマンドを並列で実行すると、インポート/エクスポート操作を大幅に高速化できます。

Azure Storage 上の SQL Server データ ファイル

これは完全な移行アプローチというよりはハイブリッドなアプローチですが、Azure Storage 上に SQL Server データ ファイルを保存することで、組織はオンプレミスとクラウド サービスをシームレスに統合できます。 これは、組織がビジネス ニーズのバランスを取り、オンプレミスとクラウド ソリューションの両方の利点を使用できるようにする長期的な戦略として機能します。

Azure 上でオンプレミスの SQL Server データ ファイルをホストすることは、クラウドへのデータの移行を検討している組織にいくつかの利点をもたらします。 これはアプリケーションの変更や新しいハードウェアは一切必要としないインクリメンタルな移行を可能にすることで移行プロセスを簡素化します。

一括コピー

bcp ユーティリティを使用すると、SQL Server テーブルからデータ ファイルへの、そしてその逆のデータの一括エクスポートが可能になります。 これは将来の一括インポートまたは一括エクスポート操作用のフォーマット ファイルの生成をサポートしています。 このユーティリティは汎用性が高く、SQL Server と他のプログラムやデータベース間のデータ転送を可能にします。

以前から存在するフォーマット ファイルが使用可能でない限り、テーブルのスキーマとデータ型を理解することは、bcp コマンドを効果的に使用するために不可欠です。

Azure Data Factory

データベース全体の移行ではなくデータの移行に対しては Azure Data Factory を使用できます。 Azure Data Factory は、ソース SQL Server データベースからのデータの移行および変換を行えます。 これは、複数のソースから Azure SQL Managed Instance へのデータのマージに対して、特にビジネス インテリジェンス ワークロードに対して、一般的に使用されています。 ただし、これは Azure 仮想マシンで実行されている SQL Server から、あるいは SQL Server へのデータ移動に対しても使用できます。 これを実現するために、ソースから宛先にデータを転送するためのデータ移動パイプラインが Azure Data Factory に作成されます。

Windows Import/Export サービス

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