Frage

ich nur über etwas störend gekommen sind, ich habe versucht, die Transaktionsreplikation aus einer Datenbank, deren Design zu implementieren, ist nicht unter unserer Kontrolle. Diese Replikation war, um die Berichterstattung durchzuführen, ohne zu viel um das System zu belasten. Bei der Replikation versuchen, ging über einige der Tabellen nur.

Bei der Untersuchung wurden Tabellen repliziert wird nicht ausgewählt, weil sie keinen Primärschlüssel hat, dachte ich, das es nicht sein kann, auch als Primärschlüssel angezeigt, wenn ich ODBC und MS Access verwenden, aber nicht in Management Studio. Auch die Abfragen sind nicht unglaublich langsam.

Ich habe versucht, einen doppelten Datensatz einfügen und es versäumt zu sagen über einen eindeutigen Index (kein Primärschlüssel). Scheint zu sein, haben die Tabellen als auf einen Primärschlüssel entgegenstellen mit einem eindeutigen Index realisiert. Warum ich weiß nicht, ich schreien konnte.

Gibt es trotzdem Transaktionsreplikation oder eine Alternative zu führen, braucht es Live (Last Minute oder zwei) zu sein. Der Haupt DB-Server ist derzeit SQL 2000 SP3a und die Berichtsserver 2005.

Das einzige, was ich noch gedacht, zu versuchen, die Replikation einrichten, als ob es eine andere Art von Datenbank ist. Ich glaube, die Replikation zu sagen Orakel möglich ist, würde diese Kraft die Verwendung eines ODBC-Treiber sagen, wie ich den Zugriff übernehmen daher wird mit einem Primärschlüssel zeigt. Ich weiß nicht, ob das aus meiner Tiefe auf diesem korrekt ist.

War es hilfreich?

Lösung

Wie MSDN Staaten , ist es nicht möglich ist, eine Transaktions zu erstellen Replikation auf Tabellen ohne Primärschlüssel. Sie könnten verwenden Replikation (einfache Fahrt) Merge, das erfordert nicht ein Primärschlüssel, und es wird automatisch eine rowguid Spalte, wenn sie noch nicht existiert:

  

Merge-Replikation verwendet eine global   eindeutige Kennung (GUID) Spalte   jede Zeile während der Zusammenführung identifizieren   Replikationsprozess. Wenn ein veröffentlichter   Tabelle nicht über eine Unique   Spalte mit der Eigenschaft ROWGUIDCOL   und ein eindeutiger Index, Replikation fügt   einer. Stellen Sie sicher, dass jede SELECT und INSERT   Aussagen, die Referenz veröffentlicht   Tabellen verwenden Spaltenlisten. Wenn eine Tabelle ist   nicht mehr veröffentlicht und Replikation   addiert die Spalte ist die Spalte   entfernt ist; wenn die Spalte bereits   existierte, ist es nicht entfernt wird.

Leider werden Sie eine Leistungseinbuße, wenn Replikation fusionieren.

Wenn Sie die Replikation verwenden müssen für Berichterstattung nur, und Sie nicht die Daten müssen genau wie auf dem Verleger gleich sein, dann könnten Sie Snapshot-Replikation auch prüfen

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top