1

SQL Server 2008 で特定の行のみをレプリケートする双方向レプリケーションを実現する方法についてのアドバイスを探しています。

たとえば、テーブル A を 2 つのデータベース (ヨーロッパとアジア) 間で複製したいと考えています。テーブルにローカル データと共有データの両方を含めたいと考えています。これは、次の値を持つフィールド「地域」を使用して示されます。

  1. グローバル
  2. ヨーロッパ
  3. アジア

ヨーロッパをパブリッシャー、アジアをサブスクライバーとしてマージ レプリケーションを設定し、次のフィルターを設定しました。

WHERE region = 1

region = 1 の行のみを複製しようとしている

ヨーロッパまたはアジアの DB にグローバル行を追加すると、反対側のテーブルに表示される行でうまく機能します。

ヨーロッパの行をヨーロッパの DB に追加すると、(必要に応じて) アジアの DB にレプリケートしないことでうまく機能します。

ただし、アジアの行をアジアの DB に追加しても、行がヨーロッパの DB に複製され、アジアの DB から削除されるため、私が望むことはできません。

パブリッシャーとサブスクライバーの関係でこれが当てはまる理由は理解できますが、イライラします。

次に、ピアツーピアが解決策かもしれないと考えましたが、ピアツーピアをフィルタリングできません。

私が探しているものを達成する方法はありますか?

みんな、ありがとう

4

2 に答える 2

1

動的フィルターを使用する必要があると思います。フィルターを作成すると、WHERE 句の後にさらに複雑なクエリを入力できます。このチュートリアルを見ることができます。スペイン語ですが、クエリを見ることができます。http://www.monografias.com/trabajos97/guia-crear-replica-mezcla-filtros-dinamicos-parametrizados-sql-server/guia-crear-replica-mezcla-filtros-dinamicos-parametrizados-sql-server.shtml

于 2013-08-29T14:20:52.983 に答える
1

これを処理するより良い方法は、3 番目のインスタンスを使用して、グローバル、ヨーロッパ、およびアジアのデータを含むデータを公開することです。HOST_NAME と地域に基づいてフィルター処理するパラメーター化された行フィルターを使用して Merge パブリケーションを使用します。 1. それぞれの HOST_NAME() 値を上書きするヨーロッパとアジアのサブスクリプションをセットアップします。

このように、ヨーロッパとアジアのサブスクリプションは、グローバルおよび地域固有のデータのみを受け取ります。

于 2012-03-12T18:15:07.187 に答える