SQL ワークロードから Azure 仮想マシンへの移行オプション

完了

SQL Server では、さまざまな方法でデータベースの移行をサポートしています。 データ エンジニアは、既存のすべてのオンプレミス メソッドを再利用して、Azure VM にデータベースを移行することができます。

プロジェクト会議の後、プロジェクト マネージャーはチームに会社の SQL Server の実際の移行方法に専念するように求めました。 さまざまなデータベースがあることがわかっており、それぞれ許容されるダウンタイムが異なります。 一部のデータベースは週末に使用されませんが、24 時間年中無休で利用可能である必要があるものもあります。 そのため、利用可能なさまざまなオプションを使用する必要があります。

このユニットでは、チームがプロジェクトの移行フェーズを実行するために使用できるさまざまな方法を確認します。

移行方法を選ぶ

Azure 仮想マシンに SQL Server を移行するには、さまざまな方法があります。 プロセスの最初の手順では、SQL Server がインストールされている Azure VM をプロビジョニングします。 データベースを移行するために選択するメソッドは、通常、SQL Server データベースをオフラインにできる時間によって異なります。 また決定する上での他の要素として、手動に対してどの程度自動化して移行するかが挙げられるかもしれません。

圧縮されたバックアップ ファイルを使用して、データベース ファイルを Azure VM に移行すると、データ転送の最高のパフォーマンスを実現できます。

データベース移行プロセス中のダウンタイムを最小限に抑えるには、Always On オプションまたはトランザクション レプリケーション オプションのいずれかを使用します。 上記のいずれの方法も使用できない場合でも、データベースを手動で移行できます。

この手動によるデータベースの移行プロセスを実行するには、いくつかの方法があります。 最初の方法は、データベースのバックアップから開始することです。 次に、バックアップを Azure VM にコピーし、そこにデータベースを復元します。 また、データベースをデタッチし、データベース ファイルを Azure にコピーしてから、アタッチすることもできます。

注意

SQL Server 2008 および SQL Server 2008 R2 のオンプレミス インスタンス向けサポート ライフ サイクルの終了が近づいています。 サポートを延長するには、SQL Server インスタンスを Azure VM に移行することも、セキュリティ更新プログラムの延長を購入してオンプレミスを維持することもできます。

データベースをバックアップし、復元する

バックアップと復元を使用した移行は、SQL Server の専門家にとってよく理解されている最も簡単な移行方法です。 それには次の 2 つの方法があります。

  • 圧縮を使用したバックアップ: ソースが SQL Server 2005 システム以上で実行できます。 圧縮されたバックアップ ファイルがローカル ディスク上に作成されたら、それを Azure VM にアップロードして復元します。

    注意

    VM ディスクの最大サイズは 1 TB であるため、バックアップ ファイルが 1 TB を超える場合、そのファイルはストライプする必要があります。

  • URL を使用したバックアップと復元: ソースが SQL Server 2012 SP1 CU2 以上で実行できます。 最初の方法と似ていますが、このメソッドは、指定された URL にバックアップ ファイルを直接作成します。 その後、その URL から Azure VM にデータベースを復元します。

    注意

    SQL Server 2016 では、ストライプ バックアップ セットがサポートされており、パフォーマンスを確保するために使用することをお勧めします。

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

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

このメソッドは、物理データベース ファイルを Azure Storage に格納したい場合に便利です。 このオプションは、大規模なデータベースに対して使用することができます。

可用性グループを使用する

移行中のダウンタイムの量を最小限に抑えたい場合、SQL Server Always On 可用性グループ機能を使用して、オンプレミスのデータベースをクラウドに拡張できます。 これを行うには、SQL Server を含む Azure VM をプロビジョニングし、Azure でデータベースのセカンダリ レプリカを設定します。 Transact-SQL を使用して、既に存在するオンプレミスの SQL Server を使用してデータベースのレプリカを追加できます。 既存の Always On 可用性グループがあり、オンプレミス ネットワークと Azure の間に既存の接続があることが必要です。

注意

Azure のレプリカ追加ウィザードは、クラシック デプロイ モデルで実行されている Virtual Machines でのみ機能します。 ベスト プラクティスとして、Resource Manager を使用して仮想マシンを作成することをお勧めします。その結果、Transact-SQL を使用してのみレプリカを追加できます。

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

Always On 可用性グループは SQL Server 2012 から使用できるため、ダウンタイムを最小限に抑える必要があり、オンプレミスに Always On がデプロイされていない場合は、トランザクション レプリケーションを使用します。 この移行を使用するには、次の 3 つの基本的な手順を実行する必要があります。

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

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

Data Migration Assistant (DMA)

ターゲットが Azure 仮想マシンの SQL Server である移行プロジェクトを表示している Data Migration Assistant のスクリーンショット

Data Migration Assistant は、スキーマとデータをオンプレミスの SQL Server から Azure Virtual Machines の SQL Server に移行するために使用できます。 ツールでは、互換性の問題に対処するように求める評価が最初に実行されます。 その後、同じツールを使用して、評価されたデータベース スキーマとデータを Azure に移行できます。

Azure Database Migration Service (DMS)

Azure DMS は、DMA で完了した評価に基づきオフライン移行アプローチを使用してオンプレミスの SQL データベースを移行するのに役立ちます。 UDP ポート 1434 経由で、ソース サーバーの名前付きインスタンスへの外部アクセスを許可するようにファイアウォールを構成します。 このサービスは、Enterprise、Standard、または Developer エディションの移行にのみ使用できます。 利点は、移行全体が Azure portal で開始および監視されることです。

その他のオプション

これまでに説明した移行オプションのほとんどは、SQL ワークロードを Azure Virtual Machines に移行する際にほとんどの組織で役立ちます。 ただし、代替手段もあり、移行を完了するために使用することができます。

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

この方法は、オンプレミスの SQL Server インスタンスのすべてのシステムとユーザー データベースを、Azure 仮想マシンに移行するときに使用します。 可能なソースとターゲット サーバーは、少なくとも SQL Server 2005 です。 次の場合、この手法を利用することがあります。

  • SQL Server ライセンスを持ち込む
  • 以前のバージョンの SQL Server で実行するデータベースを移行する
  • 他のユーザー データベースまたはシステム データベースに依存するデータベースの移行の一環として、システム データベースとユーザー データベースを一緒に移行する

Azure Import/Export サービス

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