分散型可用性グループ (AG) を使用して、データベースを SQL Server から Azure Virtual Machines (VM) 上の SQL Server に移行します。
この記事では、 スタンドアロン データベース または 可用性グループ データベースに対して分散 AG を既に構成しており、Azure VM 上の SQL Server への移行を完了する準備ができたことを前提としています。
移行の監視
Transact-SQL (T-SQL) を使用して、移行の進行状況を監視します。
グローバル プライマリとフォワーダーで次のスクリプトを実行し、プライマリ可用性グループ (synchronization_state_desc) とセカンダリ可用性グループ (OnPremAG) のAzureAGの状態がSYNCHRONIZEDされていることを確認します。 分散 AG (synchronization_state_desc) のDAGが同期中であり、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 AS drs
INNER JOIN sys.availability_groups AS 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 を追加するまで、ソース側のドメイン コントローラーを削除しないでください。