Update: Der Synchronisierungsvorgang einer Mergereplikation sertäglich in Microsoft SQL Server 2005

Fehler Nr.: 50002786 (SQL Hotfix)

Microsoft verteilt Microsoft SQL Server 2005-Fixes als eine herunterladbare Datei. Da die Fixes kumulativ sind, enthält jede neue Version alle Hotfixes und alle Sicherheitskorrekturen, die in der vorherigen SQL Server 2005-Fixversion enthalten waren.

Problembeschreibung

Betrachten Sie das folgende Szenario. In Microsoft SQL Server 2005 konfigurieren Sie eine Mergereplikation. Anschließend stellen Sie den Snapshot für einen Abonnenten bereit. Wenn Sie in diesem Szenario den Merge-Agent zum Synchronisieren von Daten ausführen, ist beim Aufrufen der sp_MSmakegeneration gespeicherten Prozedur ein Zeitüberschreitungsvorgang beim Ausführen des Vorgangs. Wenn Sie die folgende Anweisung für die replizierte Datenbank des Abonnenten ausführen, nachdem der Vorgang ein Zeitproblem aufgetreten ist, gibt die Abfrage außerdem einige Datensätze zurück, die für das Problem anfällig sind:

select * from dbo.MSmerge_genhistory gh where not exists       (select * from dbo.MSmerge_contents as mc       where mc.generation = gh.generation)and not exists      (select * from dbo.MSmerge_tombstone as ts       where ts.generation = gh.generation)and genstatus = 0union select * from dbo.MSmerge_genhistory gh where exists       (select * from dbo.MSmerge_contents as mc      where mc.generation = gh.generation      and mc.tablenick <> gh.art_nick)or exists      (select * from dbo.MSmerge_tombstone as ts      where ts.generation = gh.generation      and ts.tablenick <> gh.art_nick)and genstatus = 0

Ursache

Dieses Problem tritt auf, weil sich eine Zeile in der Tabelle MSmerge_genhistory befindet, die eine der folgenden Bedingungen erfüllt:

  • Die Generierung weist keine Änderungen auf, die ihr in der MSmerge_tombstone oder in der MSmerge_contents Tabelle zugeordnet sind.

  • Mindestens eine Zeile, die der Generierung zugeordnet ist, haben einen falschen Wert in der Tabelle tablenick in der MSmerge_tombstone-Tabelle oder in der tabelle MSmerge_contents.

Diese Situation bewirkt, dass die sp_MSmakegeneration gespeicherte Prozedur in eine Endlosschleife wechselt.

Fehlerbehebung

Die Korrektur für dieses Problem wurde zuerst in Kumulatives Update 8 veröffentlicht. Weitere Informationen zum Abrufen dieses kumulativen Updatepakets für SQL Server 2005 Service Pack 2 erhalten Sie unter der folgenden Artikelnummer, um den Artikel in der Microsoft Knowledge Base anzuzeigen:

951217 Kumulatives Updatepaket 8 für SQL Server 2005 Service Pack 2Hinweis Da die Builds kumulativ sind, enthält jede neue Fixversion alle Hotfixes und alle Sicherheitsupdates, die in der vorherigen SQL Server 2005-Fixversion enthalten waren. Microsoft empfiehlt, die neueste Fixversion anzuwenden, die diesen Hotfix enthält. Weitere Informationen erhalten Sie, um den Artikel in der Microsoft Knowledge Base anzuzeigen:

937137 Die SQL Server 2005-Builds, die nach der Veröffentlichung von SQL Server 2005 Service Pack 2 veröffentlicht wurdenMicrosoft SQL Server 2005-Hotfixes werden für bestimmte SQL Server-Service Packs erstellt. Sie müssen einen SQL Server 2005 Service Pack 2-Hotfix auf eine Installation von SQL Server 2005 Service Pack 2 anwenden. Standardmäßig ist jeder Hotfix, der in einem SQL Server-Service Pack bereitgestellt wird, im nächsten SQL Server-Service Pack enthalten.

Problemumgehung

Führen Sie die folgenden Schritte aus, um dieses Problem zu umgehen:

  1. Brechen Sie den Synchronisierungsvorgang ab, der nicht abgeschlossen ist.

  2. Führen Sie die folgenden Anweisungen aus, um die generation_leveling_threshold Einstellung für die Publikation abzuerhalten:

    use <Publication Database Name>goexec sp_helpmergepublication @publication = '<Publication Name>'

    Notieren Sie sich den Wert der generation_leveling_threshold Einstellung.

  3. Führen Sie die folgenden Anweisungen aus, um die Generierungsabgleich und Die-Generierungskoaleszung zu deaktivieren:

    use <Publication Database Name>exec sp_changemergepublication @publication = '<Publication Name>', @property = 'generation_leveling_threshold', @value = 0
  4. Synchronisieren Sie Daten für die Publikation.

  5. Nachdem die Synchronisierung erfolgreich abgeschlossen wurde, setzen Sie die einstellung generation_leveling_threshold auf den Wert zurück, den Sie in Schritt 2 angegeben haben. Führen Sie dazu die folgenden Anweisungen aus:

    use <Publication Database Name>exec sp_changemergepublication @publication = '<Publication Name>', @property = 'generation_leveling_threshold', @value = <Value>

Nachdem Sie diese Methode verwendet haben, um dieses Problem zu umgehen, tritt dieses Problem erneut auf, wenn ein anderer Abonnent versucht, die Generierung zu verarbeiten. Sie müssen diese Schritte für alle Abonnenten wiederholen, die auf das Problem stoßen.

Status

Microsoft hat bestätigt, dass es sich hierbei um ein Problem bei den in diesem Artikel genannten Microsoft-Produkten handelt.

Weitere Informationen

Weitere Informationen dazu, welche Dateien geändert werden, und Informationen zu allen Voraussetzungen zum Anwenden des kumulativen Updatepakets, das den in diesem Microsoft Knowledge Base-Artikel beschriebenen Hotfix enthält, finden Sie unter der folgenden Artikelnummer, um die Artikel in der Microsoft Knowledge Base:

951217 Kumulatives Updatepaket 8 für SQL Server 2005 Service Pack 2

Informationsquellen

Weitere Informationen zur Liste der Builds, die nach SQL Server Service Pack 2 verfügbar sind, finden Sie unter der folgenden Artikelnummer, um den Artikel in der Microsoft Knowledge Base anzuzeigen:

937137 Die SQL Server 2005-Builds, die nach der Veröffentlichung von SQL Server 2005 Service Pack 2 veröffentlicht wurdenWeitere Informationen zum inkrementellen Wartungsmodell für SQL Server erhalten Sie, um den Artikel in der Microsoft Knowledge Base anzuzeigen:

935897 Ein inkrementelles Wartungsmodell ist vom SQL Server-Team verfügbar, um Hotfixes für gemeldete Probleme zu liefernWeitere Informationen zum Abrufen von SQL Server 2005 Service Pack 2 erhalten Sie unter der folgenden Artikelnummer, um den Artikel in der Microsoft Knowledge Base anzuzeigen:

913089 So erhalten Sie das neueste Service Pack für SQL Server 2005Weitere Informationen zu den neuen Funktionen und den Verbesserungen in SQL Server 2005 Service Pack 2 finden Sie auf der folgenden Microsoft-Website:

http://go.microsoft.com/fwlink/?LinkId=71711Weitere Informationen zum Benennungsschema für SQL Server-Updates erhalten Sie, um den Artikel in der Microsoft Knowledge Base anzuzeigen:

822499 Neues Benennungsschema für Microsoft SQL Server-SoftwareupdatepaketeWeitere Informationen zur Terminologie von Softwareupdates erhalten Sie, um den Artikel in der Microsoft Knowledge Base anzuzeigen:

824684 Beschreibung der Standardterminologie, die zum Beschreiben von Microsoft-Softwareupdates verwendet wird

Benötigen Sie weitere Hilfe?

Ihre Office-Fähigkeiten erweitern
Schulungen erkunden
Neue Funktionen als Erster erhalten
Microsoft Insider beitreten

War diese Information hilfreich?

Vielen Dank für Ihr Feedback!

Vielen Dank für Ihr Feedback. Es klingt, als ob es hilfreich sein könnte, Sie mit einem unserer Office-Supportmitarbeiter zu verbinden.

×