Das Löschen von Active Directory-Objekten mit vielen Links führt zu Replikationsfehlern

Dieser Artikel bietet eine Problemumgehung für ein Problem, das auftritt, wenn Sie Active Directory-Objekte löschen, die viele Weiterleitungslinks enthalten.

Gilt für: Windows Server 2012 R2
Ursprüngliche KB-Nummer: 3149779

Zusammenfassung

In diesem Artikel wird ein Problem behandelt, das beim Löschen von Active Directory-Objekten auftritt, die viele Vorwärtslinks enthalten. Hier sind einige gängige Beispiele:

  • Gruppenmitgliedschaften (member-Attribut)
  • Roamingbenutzeranmeldeinformationen (attribut ms-PKI-AccountCredentials)
  • Schreibgeschützter Domänencontroller (RODC) hat Benutzerlinks verfügbar gemacht (attribut mds-revealedusers)

Die Anzahl der Links, bei denen Probleme auftreten, kann bis zu 50.000 sein. Für ein einzelnes Objekt können mehrere Millionen Von Links vorhanden sein.

Der in diesem Artikel beschriebene Registrierungsschlüssel sollte nur auf Domänencontroller (DCs) und LdS-Server (Lightweight Directory Services) angewendet werden, bei denen das im Abschnitt "Symptome" beschriebene Problem auftritt. Dieses Problem tritt wahrscheinlich auf Windows Server 2012, Windows Server 2012 R2 und Windows Server 2016 DCs auf. Wenn Sie die hier angegebenen Empfehlungen befolgen, können Sie die Leistung der Active Directory-Replikation verringern, aber die Zuverlässigkeit der ordnungsgemäßen Verarbeitung des Löschens von so großen Objekten erhöhen.

Symptome

Wenn Sie Active Directory-Objekte löschen, die viele Weiterleitungslinks enthalten, tritt möglicherweise ein Replikationsfehler auf. Beispielsweise löschen Sie Gruppen mit großen Mitgliedschaftssätzen, oder Sie stufen RODC-Computerkonten herunter und löschen sie dann, die über viele Links zu Benutzerkonten verfügen, deren Kennwort im RODC verfügbar gemacht wird.

Die folgenden Bedingungen sind die wichtigsten Indikatoren, dass diese Lösung auf das Problem angewendet wird:

  • Die Gesamtstrukturfunktionsebene ist Windows Server 2003 oder höher von Windows Server, sodass die Linkwertreplikation verwendet wird.

  • Ereignis 2094 (Replikationsverzögerung) tritt mehrmals auf und verweist auf dasselbe gelöschte Objekt.

  • Die Ereignisse 1083 und 1955 (Schreibkonflikt) werden in unmittelbarer Nähe zur Protokollierung des Ereignisses 2094 protokolliert, das auf dasselbe gelöschte Objekt verweist.

  • Der betroffene Domänencontroller (DC) kann auch melden, dass der Versionsspeicher erschöpft ist (Ereignis-ID 623). In diesem Szenario kommt es nicht immer zu einer Erschöpfung des Versionsspeichers. Weitere Faktoren, die die Wahrscheinlichkeit einer Erschöpfung des Versionsspeichers erhöhen, sind eine hohe Rate von Änderungen an Active Directory-Objekten , sowohl lokal als auch repliziert, sowie andere vorgänge mit langer Ausführungszeit, z. B. tiefe Abfragen.

  • Bei der Active Directory-Replikation tritt der Fehler 8409, der Fehler "Ein Datenbankfehler ist aufgetreten" oder andere Ereignisse auf, die sich auf status Codes beziehen, die in der folgenden Tabelle erwähnt werden:

    Hex Dezimal Symbolische Freundlich
    000020D9 8409 ERROR_DS_DATABASE_ERROR Ein Datenbankfehler ist aufgetreten.

    Wenn der Active Directory-Papierkorb aktiviert ist, treten die Replikationsfehler möglicherweise 60 bis 180 Tage (Lebensdauer des gelöschten Objekts) nach dem Löschen des Objekts nicht auf. Die Probleme treten auf, wenn das Objekt vom gelöschten status in die wiederverwendete status übergibt.

Ereignisprotokolleinträge

Wenn das Problem auftritt, werden die folgenden Ereignisse protokolliert:

Protokollname: Verzeichnisdienst
Quelle: Microsoft-Windows-ActiveDirectory_DomainService
Ereignis-ID: 2094
Aufgabenkategorie: Replikation
Stufe: Warnung
Schlüsselwörter: Klassisch
Beschreibung: Leistungswarnung: Die Replikation wurde beim Anwenden von Änderungen auf das folgende Objekt verzögert. Wenn diese Meldung häufig auftritt, weist sie darauf hin, dass die Replikation langsam erfolgt und der Server möglicherweise Schwierigkeiten hat, mit Änderungen Schritt zu halten.
Objekt-DN: <Objektname>
Objekt-GUID: <Objekt-GUID>
Partition DN: DC=contoso,DC=com
Server: xxxx-xxxx-xxxx-xxxx-xxxxxxx._msdcs.contoso.com
Verstrichene Zeit (Sek.): 11
Benutzeraktion
Ein häufiger Grund für diese Verzögerung ist, dass dieses Objekt besonders groß ist, entweder in Bezug auf die Größe seiner Werte oder die Anzahl der Werte. Sie sollten zunächst überlegen, ob die Anwendung geändert werden kann, um die Menge der im Objekt gespeicherten Daten oder die Anzahl der Werte zu reduzieren. Wenn es sich um eine große Gruppe oder Verteilerliste handelt, sollten Sie erwägen, die Gesamtstrukturfunktionsebene auf Windows Server 2003 oder höher zu erhöhen, da die Replikation dadurch effizienter funktioniert. Sie sollten bewerten, ob die Serverplattform eine ausreichende Leistung in Bezug auf Arbeitsspeicher und Verarbeitungsleistung bietet. Schließlich empfiehlt es sich, die Active Directory Domain Services Datenbank zu optimieren, indem Sie die Datenbank und protokolle in separate Datenträgerpartitionen verschieben.
Wenn Sie den Warnungsgrenzwert ändern möchten, ist der Registrierungsschlüssel unten enthalten. Der Wert 0 (null) deaktiviert die Überprüfung.
Zusätzliche Daten
Warnungslimit (Sek.): 10
Limit Registry Key: System\CurrentControlSet\Services\NTDS\Parameters\Replicator maximum wait for update object (secs)
Protokollname: Verzeichnisdienst
Quelle: Microsoft-Windows-ActiveDirectory_DomainService
Ereignis-ID: 1083
Aufgabenkategorie: Replikation
Stufe: Warnung
Schlüsselwörter: Klassisch
Beschreibung:
Active Directory Domain Services konnte das folgende Objekt nicht mit Änderungen aktualisieren, die vom Verzeichnisdienst unter der folgenden Netzwerkadresse empfangen wurden, da Active Directory Domain Services mit der Verarbeitung von Informationen beschäftigt war.
Objekt: <Objektname>
Netzwerkadresse: xxxxx-xxxx-xxxx-xxxx-xxxxxxx._msdcs.contoso.com
Dieser Vorgang wird später erneut versucht.
Protokollname: Verzeichnisdienst
Quelle: Microsoft-Windows-ActiveDirectory_DomainService
Ereignis-ID: 1955
Aufgabenkategorie: Replikation
Ebene: Informationen
Schlüsselwörter: Klassisch
Benutzer: ANONYME ANMELDUNG
Beschreibung: Active Directory Domain Services beim Anwenden replizierter Änderungen auf das folgende Objekt auf einen Schreibkonflikt gestoßen.
Objekt: <Objektname>
Zeit in Sekunden: 48
Ereignisprotokolleinträge, die diesem Eintrag vorangehen, geben an, ob das Update akzeptiert wurde.
Ein Schreibkonflikt kann durch gleichzeitige Änderungen am gleichen Objekt oder durch gleichzeitige Änderungen an anderen Objekten mit Attributen verursacht werden, die auf dieses Objekt verweisen. Dies tritt häufig auf, wenn das -Objekt eine große Gruppe mit vielen Mitgliedern darstellt und die Funktionsebene der Gesamtstruktur auf Windows 2000 festgelegt ist. Dieser Konflikt hat weitere Wiederholungen des Updates ausgelöst. Wenn das System langsam erscheint, kann dies daran zurückzuführen sein, dass diese Änderungen repliziert werden.
Benutzeraktion
Verwenden Sie kleinere Gruppen für diesen Vorgang, oder erhöhen Sie die Gesamtstrukturfunktionsebene auf Windows Server 2003.

Weitere Informationen

Wenn Sie ein Active Directory-Objekt löschen, das über eine außergewöhnlich große Anzahl von Vorwärts- und Rückwärtslinks verfügt, werden standardmäßig 10.000 Links gleichzeitig gelöscht. Wenn während dieser Zeit andere Threads die Zielobjekte dieser Links aktualisieren, wird die Linklöschungstransaktion angehalten, bis die Objekte wieder verfügbar sind. Diese Unterbrechung kann dazu führen, dass die gesamte Löschtransaktion lange dauert. Während dieser Zeit werden andere Replikationsaufgaben von dieser zeitintensiven Aufgabe angehalten. Sie können beispielsweise feststellen, dass Kennwörter und Aktualisierungen der Gruppenmitgliedschaft nicht in der gesamten Gesamtstruktur ausgeführt werden.

Während dieses Update aussteht, können Administratoren Schreibkonflikte und Transaktionsfehlerereignisse sehen. Wenn zusätzliche Objekte von der Replikation verarbeitet werden, wird außerdem immer mehr Versionsspeicher zugeordnet, da die ausstehende große Transaktion den Speicher der zugeordneten Versionen erst freigibt, wenn die Löschtransaktion abgeschlossen ist. Dies kann zu Versionsspeicherfehlern und Replikationswarnungsereignissen führen.

Hinweis

  • Die Garbage Collection steht nicht im Zusammenhang mit der Verarbeitung von Löschungen von Gruppenmitgliedschaftslinks.
  • Das Verringern der TSL ist keine gültige Methode zum Beschleunigen von Linklöschungen.
  • Der Legacywert für die Batchgröße des Links-Prozesses beträgt 1.000 in Versionen vor Windows Server 2008 R2. In höheren Versionen wird die Batchgröße auf 10.000 erhöht, um die Leistung des Wiederherstellens in Gesamtstrukturen zu verbessern, für die der Papierkorb aktiviert ist.
  • Überprüfen Sie die Werte des Batchgrößeparameters des Links-Prozesses . Wenn es sich nicht um Standard handelt, legen Sie den Wert wieder auf den Standardwert oder einen noch kleineren Wert wie 1.000 oder 100 fest.

Kleinere Werte verringern die Nutzung des Versionsspeichers, indem eine kleinere Anzahl von Objekten pro Löschvorgang gelöscht wird, wodurch die Gesamtzeit für die Durchführung einer einzelnen Löschtransaktion reduziert wird. Dies hat den positiven Nebeneffekt, dass der Versionsspeicher und das Zeitfenster für Schreibkonflikte reduziert werden, während Sie die Zeit erhöhen, die erforderlich ist, um die Gruppenmitgliedschaft im Verzeichnis genau widerzuspiegeln.

Active Directory-Dienste überprüfen den folgenden Registrierungsschlüssel.

Für AD DS:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Parameters\Links process batch size

Für AD LDS:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\<adam instance>\Parameters\Links process batch size
Typ: DWORD
Mindestwert: 100
Maximalwert: 10000

Dieser Wert überschreibt den Standardwert von 10.000 als Anzahl von atomischen Verknüpfungen, die gleichzeitig verarbeitet werden sollen. Sie müssen den NTDS- oder LDS-instance-Dienst nicht neu starten oder den Computer neu starten, um die Einstellung wirksam zu machen.

Nach jedem atomischen Vorgang wird der entsprechende Versionsspeicher freigegeben. Der Versionsspeicher wird nur während des nächsten atomaren Vorgangs erneut abgerufen, der dasselbe Objekt weiter verarbeitet. Möglicherweise denken Sie darüber nach, die Linkbatchgröße um einen großen Grad zu verknennen. Sie können es mit einer Erhöhung des ESE-Versionsspeichers kombinieren. Wenn Möglicherweise aus einem Grund, dass Sie den Versionsspeicher erhöht haben, können Sie den Versionsspeicher etwas erhöhen oder den Batchgrößewert des Links-Prozesses nicht so stark verringern.

Weitere Informationen finden Sie in den folgenden Artikeln:

Problemumgehung

Um dieses Problem zu umgehen, legen Sie den Wert der Batchgröße des Links-Prozesses auf weniger als 10.000 fest. Dadurch wird die Gefahr verringert, dass ein Objektzugriffskonflikt auftritt. Auf diese Weise können Sie den Replikationsprozess des Löschens großer Objekte zuverlässiger gestalten. Außerdem dauert es jetzt länger, bis die gesamte Transaktion abgeschlossen ist. Dies hilft Ihnen auch, eine Verarmung des Versionsspeichers zu vermeiden.

Datensammlung

Wenn Sie Unterstützung vom Microsoft-Support benötigen, empfehlen wir Ihnen, die Informationen zu sammeln, indem Sie die unter Sammeln von Informationen mithilfe von TSS für Active Directory-Replikationsprobleme beschriebenen Schritte ausführen.

References

Weitere Informationen finden Sie in den folgenden Artikeln: