質問

私は不穏な何かに遭遇しましたが、私は、その設計、当社の管理下にないデータベースからのトランザクションレプリケーションを実装しようとしていました。このレプリケーションは、あまりにも多くのシステムに負担をかけずに、レポートを実行するためにでした。複製を試みる際にのみ、いくつかのテーブルの間には行きました。

は、調査表に、彼らは主キーを持っていないために複製されるように選択されていなかった、私はこれは私が管理スタジオでODBCとMSのアクセスを使用しますが、いない場合は、それをしても、主キーとして示されていることはできないと思いました。また、クエリはとてつもなく遅いのではありません。

私は、重複するレコードを挿入しようと、それが一意のインデックス(ないプライマリキー)について言っ失敗しました。主キーに反対するとして、テーブルには、一意のインデックスを使用して実装されているように思われます。なぜ私は悲鳴を上げることができ知りません。

トランザクションレプリケーションまたは代替を実行するためにとにかくあり、それはライブ(最後の2分)にする必要があります。メインDBサーバは、現在、SQL 2000 SP3aのと、レポートサーバー2005です。

それはデータベースの別のタイプであるかのように

私は現在しようと考えている唯一のものは、レプリケーションを設定しています。私は、レプリケーションは、Oracleは、私がアクセスは、主キーを示すので、使用していると仮定のようにこの力の使用はODBCドライバを言うことも可能であると言うことと信じています。私はこの上で私の深さの外に正確であるかどうかを知りません。

役に立ちましたか?

解決

MSDN 状態を通り、

、トランザクションを作成することはできません主キーがない表のレプリケーション。あなたはマージレプリケーションする(片道)を使用することができ、それは必要ありません。主キー、およびそれが存在しない場合には、自動的にrowguid列を作成します:

  

マージレプリケーションは、グローバルを使用しています   一意識別子(GUID)列に   マージ中に各行を識別する   複製プロセス。公表された場合   テーブルには、UNIQUEIDENTIFIERを持っていません   ROWGUIDCOLプロパティを持つ列   そして一意のインデックスは、複製が追加されます   1。任意のSELECTとINSERTていることを確認してください   参照が発表されていることステートメント   テーブルは、列のリストを使用しています。テーブルには、ある場合には   もはや公表しないとレプリケーション   列を追加し、列はあります   削除;すでに列の場合   存在していた、それは削除されません。

マージレプリケーションを使用している場合は、

残念ながら、あなたは、パフォーマンスの低下を持っています。

あなたは、パブリッシャ上とまったく同じになるようにを報告するの唯一の、そしてあなたが必要のないデータのレプリケーションを使用する必要がある場合、あなたはまた、スナップショットレプリケーションを検討することもできます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top