データの再パブリッシュ
再パブリッシュ モデルでは、パブリッシャがデータをサブスクライバに送信し、このサブスクライバがそのデータを任意の数の他のサブスクライバに再パブリッシュします。これは、パブリッシャが、低速、またはコストが高い通信リンクを使用してサブスクライバにデータを送信する必要がある場合に役立ちます。多数のサブスクライバがそのリンクの端末に接続されている場合には、リパブリッシャの使用によりディストリビューションの負荷の大部分がそのリンク側に移ります。
データの再パブリッシュを行うには、以下の手順を実行します。
パブリッシャでパブリケーションを作成します。
再パブリッシュ サブスクライバのパブリケーションに対してサブスクリプションを作成します。
サブスクリプションを初期化します。サブスクリプションは、再パブリッシュ サブスクライバでパブリケーションが作成される前に、初期化する必要があります。この初期化を行わなかった場合、レプリケーションは失敗します。
再パブリッシュ サブスクライバで、サブスクリプション データベース内にパブリケーションを作成します。
他のサブスクライバへの再パブリッシュ サブスクライバで、パブリケーションに対するサブスクリプションを作成します。
サブスクリプションを初期化します。
注意 |
---|
再パブリッシュ トポロジでマージ レプリケーションを使用する場合、すべての再パブリッシュ サブスクライバはサーバー サブスクリプションを使用する必要があります。サブスクリプションの種類の詳細については、「パブリケーションのサブスクライブ」を参照してください。 |
以下の図では、パブリッシャとリパブリッシャの両方が、各自のローカル ディストリビュータとして動作します。それぞれがリモート ディストリビュータを使用するように設定された場合は、各ディストリビュータは、低速またはコストが高い通信リンクの、それぞれのパブリッシャと同じ側に置く必要があります。パブリッシャとリモート ディストリビュータは、信頼性の高い、高速通信リンクで接続する必要があります。
どのサーバーも、パブリッシャとサブスクライバの両方として動作できます。たとえば、以下の図では、ロンドンにあるテーブルを、シカゴ、ニューヨーク、サンディエゴ、シアトルの 4 つの米国の都市に配信する必要がある場合のパブリケーションを示しています。この場合は、ニューヨークのサイトが以下の条件を満たしているので、ロンドンでパブリッシュされたテーブルをニューヨークにあるサーバーがサブスクライブするように選択します。
ロンドンとのネットワーク リンクが比較的信頼できること。
ロンドンとニューヨークの通信コストが妥当であること。
ニューヨークと他の 3 つの米国のサブスクライバ サイトが適切なネットワーク通信回線で結ばれていること。
レプリケーションでは、次の表に示す再パブリッシュのシナリオがサポートされます。
パブリッシャ |
パブリッシュ元のサブスクライバ |
サブスクライバ |
---|---|---|
トランザクション パブリケーション |
トランザクション サブスクリプション/トランザクション パブリケーション |
トランザクション サブスクリプション |
トランザクション パブリケーション |
トランザクション サブスクリプション/マージ パブリケーション1 |
マージ サブスクリプション |
マージ パブリケーション |
マージ サブスクリプション/マージ パブリケーション |
マージ サブスクリプション |
マージ パブリケーション |
マージ サブスクリプション/トランザクション パブリケーション |
トランザクション サブスクリプション |
1マージ パブリケーションの @published\_in\_tran\_pub プロパティを設定する必要があります。既定では、トランザクション レプリケーションにより、サブスクライバでテーブルが読み取り専用として処理されることが予測されます。マージ レプリケーションにより、トランザクション サブスクリプションのテーブルでデータの変更が行われる場合、データが集約できなくなる可能性があります。このリスクを回避するため、マージ パブリケーションではこのようなテーブルをダウンロードのみとして指定することをお勧めします。これにより、マージ サブスクライバによってデータ変更がテーブルにアップロードされる状況を防止できます。詳細については、「ダウンロード専用アーティクルを使用したマージ レプリケーションのパフォーマンス最適化」を参照してください。