レプリケーション トポロジの停止 (レプリケーション Transact-SQL プログラミング)
適用対象: SQL Server
Azure SQL Managed Instance
システムの停止を実行するには、すべてのノードのパブリッシュされたテーブルで処理を停止し、他のすべてのノードからのすべての変更を各ノードが受信しているかどうかを確認します。 このトピックでは、いくつかの管理タスクで必要とされる、レプリケーション トポロジの停止方法や、他のノードからのすべての変更をノードが受け取ったことを確認する方法について説明します。
読み取り専用サブスクライバーを含むトランザクション レプリケーション トポロジを停止するには
パブリッシャーで、すべてのパブリッシュされたテーブルの処理を停止します。
パブリッシャー側のパブリケーション データベースに対して、sp_posttracertoken (Transact-SQL) を実行します。
パブリッシャー側のパブリケーション データベースに対して、 sp_helptracertokenhistoryを実行します。
各サブスクライバーがトレーサー トークンを受け取ったことを確認します。
更新可能サブスクリプションを含むトランザクション レプリケーション トポロジを停止するには
パブリッシャーおよびすべてのサブスクライバーで、すべてのパブリッシュされたテーブルの処理を停止します。
キュー更新サブスクリプションを使用するサブスクライバーがある場合
キュー リーダー エージェントが連続モードで実行されていない場合は、エージェントを実行します。 エージェントの実行の詳細については、「レプリケーション エージェント実行可能ファイルの概念」または「レプリケーション エージェントを起動および停止する (SQL Server Management Studio)」を参照してください。
キューが空であることを確認するには、各サブスクライバーで sp_replqueuemonitor を実行します。
パブリッシャー側のパブリケーション データベースに対して、 sp_posttracertokenを実行します。
パブリッシャー側のパブリケーション データベースに対して、 sp_helptracertokenhistoryを実行します。
各サブスクライバーがトレーサー トークンを受け取ったことを確認します。
ピア ツー ピアのトランザクション レプリケーション トポロジを停止するには
すべてのノードで、すべてのパブリッシュされたテーブルの処理を停止します。
トポロジ内の各パブリケーション データベースで sp_requestpeerresponse を実行します。
ログ リーダー エージェントまたはディストリビューション エージェントが連続モードで実行されていない場合は、エージェントを実行します。 ログ リーダー エージェントは、ディストリビューション エージェントの前に開始する必要があります。 エージェントの実行の詳細については、「レプリケーション エージェント実行可能ファイルの概念」または「レプリケーション エージェントを起動および停止する (SQL Server Management Studio)」を参照してください。
トポロジ内の各パブリケーション データベースで sp_helppeerresponses を実行します。 結果セットに他のノードからの応答が含まれていることを確認します。
ピア ツー ピア ノードが前の変更をすべて受け取ったことを確認するには
チェックする対象のノードのパブリケーション データベースで sp_requestpeerresponse を実行します。
ログ リーダー エージェントまたはディストリビューション エージェントが連続モードで実行されていない場合は、エージェントを実行します。 ログ リーダー エージェントは、ディストリビューション エージェントの前に開始する必要があります。 エージェントの実行の詳細については、「レプリケーション エージェント実行可能ファイルの概念」または「レプリケーション エージェントを起動および停止する (SQL Server Management Studio)」を参照してください。
チェックする対象のノードのパブリケーション データベースで sp_helppeerresponses を実行します。 結果セットに他のノードからの応答が含まれていることを確認します。
マージ レプリケーション トポロジを停止するには
パブリッシャーおよびすべてのサブスクライバーで、すべてのパブリッシュされたテーブルの処理を停止します。
各サブスクリプションに対して、マージ エージェントを 2 回実行します。すべてのサブスクリプションを 1 回同期させてから、各サブスクリプションをもう 1 回同期させます。 これにより、すべての変更がすべてのノードに確実にレプリケートされます。 エージェントの実行の詳細については、「レプリケーション エージェント実行可能ファイルの概念」または「レプリケーション エージェントを起動および停止する (SQL Server Management Studio)」を参照してください。
Note
同期中に競合が発生した場合は、マージ エージェントを 2 回実行した後でも、競合の解決に必要な変更が全ノードに反映されない可能性があります。
参照
ピアツーピア トポロジの管理 (レプリケーション Transact-SQL プログラミング)
待機時間を計測して Connections for Transactional Replication を検証します。