4

何か気になることがありました。設計が制御されていないデータベースからトランザクションレプリケーションを実装しようとしていました。この複製は、システムに過度の負担をかけずにレポートを実行するためのものでした。レプリケーションを試行すると、一部のテーブルのみが通過しました。

調査テーブルでは主キーがないため、複製するように選択されていませんでした。ODBCとms accessを使用しているが、Management Studioでは使用していない場合、主キーとして表示されることすらできないと思いました。また、クエリは途方もなく遅くはありません。

重複するレコードを挿入しようとしましたが、(主キーではなく)一意のインデックスについて表示できませんでした。テーブルは、主キーとは対照的に、一意のインデックスを使用して実装されているようです。なぜ私は悲鳴を上げることができるかわからない。

トランザクションレプリケーションまたは代替を実行する方法はありますか、それはライブである必要があります(最後の1〜2分)。メインのデータベースサーバーは現在、SQL2000sp3aとレポートサーバー2005です。

私が現在試していると思っているのは、別の種類のデータベースであるかのようにレプリケーションを設定することだけです。オラクルが可能であると言う複製は、アクセスが使用していると想定しているようなODBCドライバーの使用を強制するため、主キーが表示されると思います。これについての私の深さから、それが正確であるかどうかはわかりません。

4

1 に答える 1

7

MSDNが述べているように、主キーのないテーブルでトランザクション レプリケーションを作成することはできません。主キーを必要としないMerge レプリケーション(一方向) を使用できます。rowguid列が存在しない場合は自動的に作成されます。

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

残念ながら、マージ レプリケーションを使用すると、パフォーマンスが低下します。

レポーティングのみにレプリケーションを使用する必要があり、データがパブリッシャとまったく同じである必要がない場合は、スナップショット レプリケーションも検討できます。

于 2009-07-22T11:42:03.430 に答える