データの同期
データの同期とは、初期スナップショットをサブスクライバで適用した後に、パブリッシャとサブスクライバの間でデータとスキーマ変更を反映する処理のことです。同期は、次のように実行されます。
連続して実行。これは通常、トランザクション レプリケーションの場合です。
要求時に実行。これは通常、マージ レプリケーションの場合です。
スケジュールに基づいて実行。これは通常、スナップショット レプリケーションの場合です。
サブスクリプションが同期されると、使用しているレプリケーションの種類に基づいて異なる処理が実行されます。
スナップショット レプリケーション。同期とは、ディストリビューション エージェントがサブスクライバでスナップショットを再適用して、サブスクリプション データベースのスキーマおよびデータがパブリケーション データベースとの一貫性を持つようにすることを意味します。
データまたはスキーマへの変更がパブリッシャで行われている場合、サブスクライバに変更を反映させるために、新しいスナップショットを生成する必要があります。
トランザクション レプリケーション。同期とは、ディストリビューション エージェントが更新、挿入、削除、およびその他の変更をディストリビューション データベースからサブスクライバに転送することを意味します。
マージ レプリケーション。同期とは、マージ エージェントがサブスクライバからパブリッシャに変更をアップロードし、パブリッシャからサブスクライバに変更をダウンロードすることを意味します。競合が存在する場合は、検出されて解決されます。データは集約され、最終的にパブリッシャとすべてのサブスクライバでデータ値が同じになります。競合が検出されて解決された場合、一部のユーザーがコミットした作業は、定義されたポリシーに応じて、競合が解決するように変更されます。
スナップショット パブリケーションでは、同期が発生するたびに、サブスクライバでスキーマが完全に更新されます。そのため、すべてのスキーマ変更がサブスクライバに適用されます。トランザクション レプリケーションとマージ レプリケーションでも、最も一般的なスキーマ変更がサポートされます。詳細については、「パブリケーション データベースでのスキーマの変更」を参照してください。
プッシュ サブスクリプションを同期するには
SQL Server Management Studio: プッシュ サブスクリプションの同期をとる方法 (SQL Server Management Studio)
Replication エージェント プログラミング : プッシュ サブスクリプションを同期する方法 (レプリケーション プログラミング)
レプリケーション管理オブジェクト (RMO) プログラミング : プッシュ サブスクリプションを同期する方法 (RMO プログラミング)
プル サブスクリプションを同期するには
SQL Server Management Studio: プル サブスクリプションの同期をとる方法 (SQL Server Management Studio)
Replication エージェント プログラミング : プル サブスクリプションを同期する方法 (レプリケーション プログラミング)
レプリケーション管理オブジェクト (RMO) プログラミング : プル サブスクリプションを同期する方法 (RMO プログラミング)
同期のスケジュールを設定するには
SQL Server Management Studio: 同期スケジュールを指定する方法 (SQL Server Management Studio)
レプリケーション Transact-SQL プログラミング : 同期スケジュールを指定する方法 (レプリケーション Transact-SQL プログラミング)
レプリケーション管理オブジェクト (RMO) プログラミング : 同期スケジュールを指定する方法 (RMO プログラミング)
同期の競合を表示および解決するには
SQL Server Management Studio: マージ パブリケーションでデータの競合を表示および解決する方法 (SQL Server Management Studio)
SQL Server Management Studio: トランザクション パブリケーションのデータの競合を表示する方法 (SQL Server Management Studio)
同期中のコード実行
レプリケーションでは、同期中にコードを実行する方法が 2 つサポートされています。
要求時スクリプト実行は、トランザクション レプリケーションおよびマージ レプリケーションでサポートされています。要求時スクリプト実行を使用すると、同期中に実行する SQL スクリプトを指定できます。スクリプトはサブスクライバにコピーされ、同期処理の開始時に sqlcmd を使用して実行されます。スクリプトは、レプリケートされた変更をサブスクライバに適用するときに、それらの変更へはアクセスしません。詳細については、「同期中にスクリプトを実行する方法 (レプリケーション Transact-SQL プログラミング)」を参照してください。
ビジネス ロジック ハンドラは、マージ レプリケーションでサポートされています。ビジネス ロジック ハンドラ フレームワークを使用すると、マネージ コードのアセンブリを記述して、マージ同期処理中に呼び出すことができます。このアセンブリには、データの変更、競合、およびエラーなど、同期中に発生するさまざまな状況に対処するためのビジネス ロジックを記述できます。詳細については、「マージ同期中のビジネス ロジックの実行」を参照してください。