Ich habe eine Transaktionsreplikationstopologie wie folgt:
NY Publication Database Der gleiche Server enthält den Distributor
NY - Abonnent
LON - Abonnent
HK - Abonnent
Wir verwenden die Einweg-Transaktionsreplikation nach Moorstandard. Alle Maschinen SQL 2008 R2
Der Snapshot wird problemlos auf alle Abonnenten angewendet und beginnt dann, wie erwartet, Befehle zu verteilen, aber nur an einen Abonnenten (London) bleiben eine ganze Reihe von 2000 bis 4 Millionen Befehlen einfach "hängen". Sie können die Befehle in msrepl_commands sehen, Sie können die Transaktionen in msrepl_transaction sehen. Der Replikationsmonitor zeigt an, dass xxxxx nicht zugestellte Befehle vorhanden sind. Alle Befehle werden ohne Probleme an die anderen 2 Teilnehmer übermittelt.
Das Problem ist, dass sie einfach dort bleiben. Der Replikationsmonitor sagt, dass nichts repliziert werden muss und nichts passiert. Sie bleiben einfach dort, wo sie sind. Der einzige Weg, den ich gefunden habe, ist es, das Abonnement abzureißen und neu zu initialisieren!?!
Ich bin mir bewusst, dass es zwischen NY und Lon Netzwerk-Blips gibt, und ich kann in msrepl_errors sehen, dass es einige Kommunikationsfehler gibt. Ich würde jedoch erwarten, dass die Replikation sie wieder aufnimmt. Der Distributionsagent läuft einwandfrei.
Wie komme ich um dieses Problem herum und zwinge SQL Server, diese Befehle aufzunehmen und bereitzustellen.