分散型 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 を追加するまで、ソース側のドメイン コントローラーを削除しないでください。