次の方法で共有


分散型 AG を使用した移行の完了

分散型可用性グループ (AG) を使用して、データベースを SQL Server から Azure Virtual Machines (VM) 上の SQL Server に移行します。

この記事では、スタンドアロン データベースまたは可用性グループ データベース用に分散 AG を既に構成済みであり、Azure VM 上の SQL Server への移行を完了する準備が整ったことを前提とします。

移行の監視

Transact-SQL (T-SQL) を使用して、移行の進行状況を監視します。

グローバル プライマリとフォワーダーで次のスクリプトを実行し、プライマリ可用性グループ (OnPremAG)とセカンダリ可用性グループ (AzureAG) の synchronization_state_desc の状態が SYNCHRONIZED であることを検証します。 分散型 AG (DAG) の synchronization_state_desc が同期中であり、last_hardened_lsn がグローバル プライマリとフォワーダーの両方でデータベースごとに同じであることを確認します。

実行しない場合は、その状態になるまで 5 秒おきに両側のクエリを再実行します。

移行を監視するには、次のスクリプトを使用します。

SELECT ag.name,
    drs.database_id,
    db_name(drs.database_id) AS database_name,
    drs.group_id,
    drs.replica_id,
    drs.synchronization_state_desc,
    drs.last_hardened_lsn
FROM sys.dm_hadr_database_replica_states drs
INNER JOIN sys.availability_groups ag
    ON drs.group_id = ag.group_id;

移行の完了

可用性グループと分散型 AG の状態を検証したら、移行を完了する準備が整います。 これには、分散型 AG のフォワーダー (Azure のターゲット SQL Server) へのフェールオーバーと、その後の Azure 側の新しいプライマリへのアプリケーションのカットオーバーがあります。

分散型可用性グループをフェールオーバーするには、セカンダリの可用性グループへのフェールオーバーを確認します。

フェールオーバーの後、アプリケーションの接続文字列を更新して、Azure の新しいプライマリ レプリカに接続します。 この時点で、分散型可用性グループを維持するか、ソース インスタンスとターゲットの両方の SQL Server インスタンスで DROP AVAILABILITY GROUP [DAG] を使用して削除するか選択できます。

ドメイン コントローラーがソース側にある場合は、ソース SQL Server インスタンスを破棄する前に、Azure 内のターゲット SQL Server VM がドメインに参加済みか検証します。 Azure でソース側にドメインを作成し、この新しいドメインに SQL Server VM を追加するまで、ソース側のドメイン コントローラーを削除しないでください。