
Wir haben zwei SQL2000-Server, die mehrere Datenbanken mithilfe der Merge-Replikation synchronisieren. Irgendwann in den letzten Monaten ist der Merge-Agent für eine der Datenbanken verschwunden. Es ist schwer zu sagen, wann das passiert ist, denn dieses System wird eigentlich nur ein paar Monate und ein paar Mal im Jahr verwendet.
Soweit ich das beurteilen kann (ich bin kein Replikationsexperte), sind sowohl Abonnements als auch Veröffentlichungen noch vorhanden, aber eine davon führt die Merge-Replikation nicht mehr durch, da kein Merge-Agent vorhanden ist. Die andere führt die Merge-Replikation problemlos durch.
Das Schema ist zwischen den Datenbanken immer noch dasselbe, aber die Daten haben sich geändert. Der Abonnentenserver hat neuere Daten als der Herausgeberserver.
Wie bekomme ich den Merge-Agent am besten zurück? Ich habe in BOL nachgesehen und das Internet durchforstet. Dieser ganze Replikationskram ist verwirrend und beängstigend!
Antwort1
Ja, es ist beängstigend.
Ich erinnere mich, dass vor einiger Zeit das Abonnement automatisch ablief und verschwand, wenn die Replikation nicht mindestens alle 2 Wochen (glaube ich) durchgeführt wurde. Es ist Jahre her, dass ich das gemacht habe, also ist das wirklich unklar. Bei uns lief das Abonnement der Arbeitsstationen ab, wenn der Endnutzer für 2 Wochen in den Urlaub ging (vor der Zeit des Highspeed-Internets verwendeten wir die Merge-Replikation für Außendiensteinheiten).
Wir haben die Einstellung auf 6 Monate vor Ablauf geändert.
Ich weiß allerdings nicht, ob das Ihr Problem ist, aber wegen der Replikation mussten wir bei dem Projekt viele lange Nächte durchmachen und uns den Kopf zerbrechen … und wenn wir schliefen, hatten wir Albträume.
BEARBEITEN: Mir ist gerade noch etwas eingefallen. Die Replikation wird mit den Berechtigungen ausgeführt, die das SQL Agent-Konto verwendet. Wenn es also Probleme mit dem Konto gibt, das der SQL Agent-Dienst verwendet, wirkt sich dies negativ auf die Replikation aus.
Antwort2
Ich bin auch kein großer Experte in Sachen Replikation, aber wenn wir die Merge-Replikation wiederholen mussten, stelle ich einfach mit einem SQL-Datenvergleichstool sicher, dass der Herausgeber die neuesten Daten hat, und erstelle das Ganze neu. Ich weiß nicht, ob das für euch eine Option ist, aber unsere Datenbanken sind ziemlich klein und geografisch nicht weit voneinander entfernt.
Das von uns verwendete Tool ist Apex SQL Data Diff. Ich bin mir jedoch sicher, dass es noch viele andere Optionen gibt.