Artikel-ID: 307356 - Geändert am: Mittwoch, 6. April 2011 - Version: 1.0

INF: So zu verstehen, Merge Replication Artikel Verarbeitungsreihenfolge

SystemtippDieser Artikel bezieht sich auf ein anderes Betriebssystem als das von Ihnen verwendete. Für Sie möglicherweise nicht relevante Artikelinhalte wurden deaktiviert.

Auf dieser Seite

Alles erweitern | Alles schließen

Zusammenfassung

Der Merge-Agent folgt auf einen bestimmten Satz von Regeln, die die Reihenfolge bestimmen, in der vom Mergeprozess Änderungen an Artikeln während des Synchronisierungsvorgangs anwendet.

Dieser Artikel beschreibt, warum die Verarbeitungsreihenfolge für Artikel wichtig ist.

Weitere Informationen

Es gibt zwei Hauptgründe, warum die Verarbeitungsreihenfolge für Artikel wichtig ist:
  • In vielen Fällen muss der Merge-Agent Änderungen an Artikeln verarbeiten, die Teilnahme von Einschränkungen der deklarativen referenziellen Integrität (DRI) in einer bestimmten Reihenfolge um eine optimale Leistung zu erreichen. Wenn nicht, der Merge-Agent (Data Manipulation Language, DML) Vorgänge zu wiederholen, haben möglicherweise versucht es in falscher Reihenfolge (die versuchen, ist, um eine untergeordnete Zeile vor der übergeordneten EINZUFÜGEN).
  • Anwendungen, die Trigger, verwenden um die referenzielle Integrität zu erhalten, der Merge-Agent zum Senden von Änderungen in einer bestimmten Reihenfolge erfordern. Wenn der Merge-Agent Änderungen in falscher Reihenfolge sendet, der Trigger wird höchstwahrscheinlich Zurücknahme der Änderung und Weitergeben der Änderung nicht in der Replikationstopologie.
Beachten Sie, dass der Merge-Agent FOREIGN KEY-Einschränkung-Bewertung und Benutzer-Triggerausführung umgangen werden kann, wenn Sie SQL-DML angewendet wird ändern Operationen in einem Partner-Replikat. Damit dies geschieht müssen FOREIGN KEY-Einschränkung und die Benutzer-Trigger oder beides mit der Option NOT FOR REPLICATION erstellt wurden. In beiden Fällen wird der Mergeprozess davon ausgegangen, dass SQL Server die Geschäftslogik erfolgreich ausgewertet ist Wenn Sie die ursprüngliche Benutzer initiierte Änderung anhand des Objekts ausgeführt wird und dass es nicht diese Bedingungen neu zu bewerten, wenn Sie die Daten an das Partnerreplikat repliziert. Der Hauptvorteil der Verwendung von NOT FOR REPLICATION auf diese Weise ist die erhöhte Leistung. Weitere Informationen zu der Option NOT FOR REPLICATION und wie es angemessen verwendet finden Sie unter das Thema "Nicht für die Replikationsoption" in der Onlinedokumentation zu SQL Server 2000.

Für die zwei Gründe, die weiter oben aufgeführt wurden, unbedingt die Reihenfolge, in der der Merge-Agent Änderungen an einer Partner-Replikat übermittelt.

Vor Beginn einer Diskussion der Verarbeitungsreihenfolge Artikel, ist es wichtig, dass der zwei wichtigsten Konzepte vertraut sein. Die zwei wichtigsten Konzepte lauten wie folgt:
  • Ein Artikel-Pseudonym.
  • Eine Generation.
Es folgt eine Beschreibung der beiden Konzepte.

Artikel Spitznamen

Ein Spitzname ist ein ganzzahliger Wert, den vom Merge-Agent, verwendet um einen Artikel (eine SQL Server-Tabelle) Mergereplikation zu identifizieren. Der Mergeprozess Setup weist ein Pseudonym Artikel, wenn Sie eine Mergepublikation Artikel hinzufügt. Wenn ein Artikel DRI-Einschränkungen gehört, versucht der Mergeprozess Setup ein Pseudonym Artikel zu generieren, die DRI-Einschränkungen definierte widerspiegelt. Der Mergeprozess weist Tabellen verwiesen, die durch eine FOREIGN KEY-Einschränkung (ein übergeordnetes Element) ein kleinerer Artikel nickname als der der referenzierenden Tabelle (die untergeordnete Tabelle oder in der Tabelle auf dem FOREIGN KEY-Einschränkung definiert ist).

Wenn eine Tabelle in DRI-Einschränkungen nicht einbezogen ist, weist der Mergeprozess Setup den Artikel Spitznamen basierend auf der Reihenfolge, in der den Artikel der Publikation (in aufsteigender Reihenfolge) hinzugefügt.

Generation

Eine Generation ist eine ganze Zahl, die der Merge-Agent, verwendet um eine logische Gruppe von Änderungen für einen bestimmten Artikel zu verfolgen. Alle Änderungen an einem bestimmten Artikel in einem bestimmten Replikat zwischen den Synchronisierungen der Zusammenführung sind der gleichen Generation zugeordnet. Jedes Mal der Merge-Agent ausgeführt wird, schließt die vorhandene open Generation, und öffnet dann eine neue Generation mit dem nächsten Satz von Änderungen zugeordnet werden soll.

Verarbeitung von Einfügungen, Aktualisierungen und löscht

Der Merge-Agent Partitionen für eine bestimmte Veröffentlichung in zwei separate Gruppen Artikeln:
  • Der Merge-Agent platziert Artikel, die alle Verknüpfungsbeziehungen-Filter nicht beteiligt sind, und nicht auf alle Artikel in einer Gruppe Verknüpfungsfilter beteiligt über DRI beziehen.
  • Der Merge-Agent speichert Artikeln, die explizit beteiligt sind im Join Filter-Beziehungen und Artikeln im Zusammenhang mit der Filter-Artikeln über DRI in eine zweite distinct Gruppe beitreten.
Der Merge-Agent fügt jeder Artikel der Publikation nur auf eine der zuvor genannten Gruppen definiert.

Der Merge-Agent verwendet die Gruppen um zu bestimmen, die gesamte Bearbeitung der Bestellung von Aktualisierungen, Einfügungen und Löschungen für alle Artikel, die für die Publikation definiert.

In jedem der beiden entsprechenden Gruppen der Merge-Agent verarbeitet Einfügungen und Aktualisierungen in aufsteigender Reihenfolge der Artikel-Spitznamen, und Prozesse in absteigender Reihenfolge der Artikel-Pseudonym wird gelöscht. Erstens löscht den Merge-Agent-Prozesse, die alle in ihrer Gesamtheit in einer bestimmten Gruppe, gefolgt von Aktualisierungen und Einfügungen (auch in einer bestimmten Gruppe). Vom Konzept her, fügt der Merge-Agent die beiden genannten Gruppen mit einer anderen (nicht zusammengeführt) in der zuvor aufgeführten Reihenfolge. Der Merge-Agent beginnt mit der Verarbeitung von Löschungen für die erste Gruppe, und erweitert, Verarbeitung an die zweite Gruppe löschen und der Rest der Änderungen für die beiden Gruppen werden parallel verarbeitet. Obwohl der Merge-Agent Artikel Verarbeitungsreihenfolge in den jeweiligen Gruppen verwaltet werden, verwaltet der Merge-Agent keine strikte Artikel Verarbeitungsreihenfolge über die jeweiligen Gruppen. Im Falle einer INSERT- oder UPDATE ist es daher möglich, dass Änderungen aus der ersten Gruppe mit einem höheren Artikel Spitznamen voraus, von denen die zweite Gruppe mit einem niedrigeren Spitznamen eintreffen können. Die Situation umgekehrt kann auch bei einer DELETE auftreten. Diese Verhaltensweisen sind entwurfsbedingt.


Mögliche Auswirkungen der Batchverarbeitung auf Generation Artikel Verarbeitungsreihenfolge

Wie bereits erwähnt, können mit einer Generation Sie logisch Änderungen (Einfügungen, Aktualisierungen und Löschungen) gruppieren, die für einen bestimmten Artikel in einem bestimmten Replikat zwischen Synchronisationssitzungen auftreten. Letzten Endes der Merge-Agent arbeitet mit Generationen, wenn es, welche Änderungen ermittelt, Sie zwischen zwei Replikaten austauschen muss. Der Merge-Agent handelt es sich um eine gemeinsame Generation an den folgenden Punkten im Synchronisationsprozess:
  • Bevor Sie Änderungen vom Abonnenten zum Verleger uploadet.
  • Bevor Sie Änderungen vom Verleger auf den Abonnenten heruntergeladen.
Der Merge-Agent verwendet diese gemeinsamen Generation als Ausgangspunkt beim Aufzählen der Generationen zum Senden an einen Partner-Replikat während des Uploads und Downloadphasen der Mergesynchronisierung.

Der Merge-Agent verarbeitet Generierungen in Batches, die auch als Batches Generation bezeichnet. In der Standardeinstellung sind 100 Generierungen in jedem Batch Generation enthalten, die der Merge-Agent führt den Upload vom Abonnenten zum Verleger oder vom Verleger zum Abonnenten-downloads. Die Generierung von Batch-Größe ist konfigurierbar über die
-UploadGenerationsPerBatchund die-DownloadGenerationsPerBatchMerge-Agent-Parameter oder durch den Merge-Agent-profile. Im Standardfall, wenn mehr als 100 Generierungen vorhanden sind, Sie Exchange (d. h., Download und Upload oder beides) zwischen einem Verleger (oder einem Neuverleger müssen) und ein Abonnent, der Merge-Agent mehrere Generation Batches verarbeitet. Die Anzahl der Batches, hängt von der Anzahl der Generierungen, die der Merge-Agent wurde zum Austausch und die Generationen pro Batch Einstellungen in-Force für einen bestimmten Mergesitzung.

In einer Situation, in denen mehrere Generation Batches ausgetauscht werden, kann der Merge-Agent zugehörigen übergeordneten und untergeordneten Änderungen auf zwei separate Generation Stapel aufgeteilt. Wenn dies der Fall ist, darf der Merge-Agent eine untergeordneten-Änderung in einem Batch Generation voraus des Stapels Generation liefern, die die zugehörige übergeordnete Änderung enthält. In hierarchischen Merge-Topologien, die Re-publishers verwenden, ist eine seltene Situation, in dem die Aufteilung der über- und untergeordneten Änderungen auf Generation Batches zu non-Convergence führen kann. Weitere Informationen zu non-Convergence finden Sie im folgenden Artikel der Microsoft Knowledge Base:
308266  (http://support.microsoft.com/kb/308266/EN-US/ ) PRB: Non-Convergence beim SQLServer-Prozesse untergeordneten und übergeordneten Generationen in separaten Generation Batches

Sie können erhöhen die-UploadGenerationsPerBatch
und die-DownloadGenerationsPerBatchum zu vermeiden, Aufteilung von übergeordneten und untergeordneten Änderungen auf Generation Batches zuvor beschriebenen Parametern.

Artikel Verarbeitungsreihenfolge wird in einem bestimmten Generierungsbatch besprochenen Vorschriften verwaltet. Der Merge-Agent kann nicht jedoch Artikel, die Bearbeitung der Bestellung über Generation Batches beibehalten.

Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2005 Compact Edition
  • Microsoft SQL Server 2005 Mobile Edition Service Pack 1
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems
  • Microsoft SQL Server 2005 Enterprise X64 Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2005 Express Edition with Advanced Services
  • Microsoft SQL Server 2005 Service Pack 2
  • Microsoft SQL Server 2005 Service Pack 3
  • Microsoft SQL Server 2005 Service Pack 4
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Standard Edition for Itanium Based Systems
  • Microsoft SQL Server 2005 Standard X64 Edition
  • Microsoft SQL Server 2005 Workgroup Edition
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Express
  • Microsoft SQL Server 2008 Express with Advanced Services
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Service Pack 1
  • Microsoft SQL Server 2008 Service Pack 2
  • Microsoft SQL Server 2008 Standard Edition for Small Business
  • Microsoft SQL Server 2008 Web
  • Microsoft SQL Server 2008 Workgroup
  • Microsoft SQL Server 2008 R2 Datacenter
  • Microsoft SQL Server 2008 R2 Developer
  • Microsoft SQL Server 2008 R2 Enterprise
  • Microsoft SQL Server 2008 R2 Express
  • Microsoft SQL Server 2008 R2 Express with Advanced Services
  • Microsoft SQL Server 2008 R2 Reporting Services
  • Microsoft SQL Server 2008 R2 Standard
  • Microsoft SQL Server 2008 R2 Standard Edition for Small Business
  • Microsoft SQL Server 2008 R2 Web
  • Microsoft SQL Server 2008 R2 Workgroup
Keywords: 
kbinfo kbmt KB307356 KbMtde
Maschinell übersetzter ArtikelMaschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 307356  (http://support.microsoft.com/kb/307356/en-us/ )
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.