Freigeben über


MSSQL_REPL027183

Nachrichtendetails

Produktname SQL Server
Ereignis-ID 27183
Ereignisquelle MSSQLSERVER
Komponente SQL Server-Datenbank-Engine
Symbolischer Name
Meldungstext Der Zusammenführungsprozess konnte die Änderungen in Artikeln mit parametrisierten Zeilenfiltern nicht enumerieren. Wenn dieser Fehler weiterhin auftritt, erhöhen Sie das Abfragetimeout für diesen Prozess, verringern Sie den Aufbewahrungszeitraum für die Publikation, und verbessern Sie die Indizes für veröffentlichte Tabellen.

Erklärung

Dieser Fehler wird ausgelöst, wenn beim Verarbeiten von Änderungen in einer gefilterten Publikation ein Timeout für den Zusammenführungs-Agent auftritt. Das Timeout kann durch eines der folgenden Probleme verursacht werden:

  • Verwenden Sie nicht die vorkompilierte Partitionsoptimierung.

  • Indexfragmentierung für Spalten, die zum Filtern verwendet werden.

  • Große Zusammenführung von Metadatentabellen wie MSmerge_tombstone, MSmerge_contents und MSmerge_genhistory.

  • Gefilterte Tabellen, die nicht mit einem eindeutigen Schlüssel verknüpft sind, und Verknüpfungsfilter, die eine große Anzahl von Tabellen umfassen.

Benutzeraktion

So lösen Sie das Problem:

  • Erhöhen Sie den Wert des Parameters "-QueryTimeOut " für den Merge-Agent, damit die Verarbeitung fortgesetzt werden kann, während Sie die zugrunde liegenden Probleme beheben, die den Fehler verursachen. Agentparameter können in den Agentprofilen und in der Befehlszeile angegeben werden. Weitere Informationen finden Sie unter:

  • Verwenden Sie nach Möglichkeit die vorab komputierte Partitionsoptimierung. Diese Optimierung wird standardmäßig verwendet, wenn eine Reihe von Publikationsanforderungen erfüllt ist. Weitere Informationen zu diesen Anforderungen finden Sie unter Optimieren der parametrisierten Filterleistung mit vorkompilierten Partitionen. Wenn die Publikation diese Anforderungen nicht erfüllt, sollten Sie die Publikation neu gestalten.

  • Geben Sie die niedrigste Einstellung für den Aufbewahrungszeitraum der Publikation an, da die Replikation metadaten in den Publikations- und Abonnementdatenbanken nicht bereinigen kann, bis der Aufbewahrungszeitraum erreicht ist. Weitere Informationen finden Sie unter Abonnementablauf und Deaktivierung.

  • Im Rahmen der Wartungsarbeiten für die Zusammenführungsreplikation überprüfen Sie gelegentlich das Wachstum der Systemtabellen, die mit der Zusammenführungsreplikation verbunden sind: MSmerge_contents, MSmerge_genhistory und MSmerge_tombstone, MSmerge_current_partition_mappings und MSmerge_past_partition_mappings. Diese Tabellen werden in regelmäßigen Abständen erneut indiziert. Weitere Informationen finden Sie unter Neuorganisieren und Neuerstellen von Indizes.

  • Stellen Sie sicher, dass spalten, die zum Filtern verwendet werden, ordnungsgemäß indiziert sind, und erstellen Sie diese Indizes bei Bedarf neu. Weitere Informationen finden Sie unter Neuorganisieren und Neuerstellen von Indizes.

  • Legen Sie die join_unique_key-Eigenschaft für Verknüpfungsfilter fest, die auf eindeutigen Spalten basieren. Weitere Informationen finden Sie unter Verknüpfungsfilter.

  • Beschränken Sie die Anzahl der Tabellen in der Verknüpfungsfilterhierarchie. Wenn Sie Verknüpfungsfilter mit fünf oder mehr Tabellen generieren, sollten Sie andere Lösungen in Betracht ziehen: Filtern Sie keine Tabellen, die klein sind, keine Änderungen unterliegen oder in erster Linie Nachschlagetabellen sind. Verwenden Sie Verknüpfungsfilter nur zwischen Tabellen, die zwischen Abonnements partitioniert werden müssen.

  • Nehmen Sie eine kleinere Anzahl von Änderungen an gefilterten Tabellen zwischen den Synchronisierungen vor, oder führen Sie den Merge-Agent öfters aus. Weitere Informationen zum Festlegen von Synchronisierungszeitplänen finden Sie unter Angeben von Synchronisierungszeitplänen.

Siehe auch

Referenz für Fehler und Ereignisse (Replikation)