La suppression d’objets Active Directory qui ont de nombreux liens entraîne des échecs de réplication

Cet article fournit une solution de contournement pour un problème qui se produit lorsque vous supprimez des objets Active Directory qui contiennent de nombreux liens vers l’avant.

S’applique à : Windows Server 2012 R2
Numéro de la base de connaissances d’origine : 3149779

Résumé

Cet article traite d’un problème qui se produit lorsque vous supprimez des objets Active Directory qui contiennent de nombreux liens vers l’avant. Voici quelques exemples courants :

  • Appartenances aux groupes (attribut de membre)
  • Informations d’identification utilisateur itinérantes (attribut ms-PKI-AccountCredentials)
  • Liens utilisateur exposés au contrôleur de domaine en lecture seule (attribut mds-revealedusers)

Le nombre de liens où vous commencez à rencontrer des problèmes peut être aussi faible que 50 000. Sur un seul objet, il peut y avoir plusieurs millions de liens.

La clé de Registre décrite dans cet article doit être appliquée uniquement aux contrôleurs de domaine et aux serveurs LDS (Lightweight Directory Services) qui rencontrent le problème décrit dans la section « Symptômes ». Ce problème est susceptible de se produire sur les contrôleurs de domaine Windows Server 2012, Windows Server 2012 R2 et Windows Server 2016. En suivant les recommandations fournies ici, vous pouvez réduire les performances de réplication Active Directory, mais augmenter la fiabilité du traitement correct de la suppression d’objets volumineux.

Symptômes

Lorsque vous supprimez des objets Active Directory qui contiennent de nombreux liens vers l’avant, vous pouvez rencontrer un échec de réplication. Par exemple, vous supprimez des groupes avec des jeux d’appartenances volumineux, ou vous rétrogradez, puis supprimez les comptes d’ordinateur rodC qui ont de nombreux liens vers des comptes d’utilisateurs dont le mot de passe est exposé sur le contrôleur de domaine en lecture seule.

Les conditions suivantes sont les indicateurs clés que cette solution applique au problème :

  • Le niveau fonctionnel de la forêt étant Windows Server 2003 ou version ultérieure de Windows Server, la réplication de valeur de liaison est utilisée.

  • L’événement 2094 (délai de réplication) se produit plusieurs fois, faisant référence au même objet supprimé.

  • Les événements 1083 et 1955 (conflit d’écriture) sont enregistrés à proximité de la journalisation de l’événement 2094 référençant le même objet supprimé.

  • Le contrôleur de domaine affecté peut également signaler que le magasin de versions est épuisé (ID d’événement 623). L’épuisement du magasin de versions ne se produit pas toujours dans ce scénario. D’autres facteurs qui augmentent la probabilité d’épuisement du magasin de versions incluent un taux élevé de modifications apportées aux objets Active Directory, à la fois locaux et répliqués, ainsi que d’autres opérations de longue durée telles que les requêtes approfondies.

  • La réplication Active Directory échoue avec l’erreur 8409, l’erreur « Une erreur de base de données s’est produite » ou d’autres événements citent les codes status associés mentionnés dans le tableau suivant :

    Hex Décimal Symbolique Amical
    000020D9 8409 ERROR_DS_DATABASE_ERROR Une erreur de base de données s’est produite

    Si la Corbeille Active Directory est activée, les erreurs de réplication peuvent ne pas se produire pendant 60 à 180 jours (durée de vie des objets supprimés) après la suppression de l’objet. Les problèmes se produisent lorsque l’objet passe du status supprimé au status recyclé.

Entrées du journal des événements

Lorsque le problème se produit, les événements suivants sont enregistrés :

Nom du journal : Service d’annuaire
Source : Microsoft-Windows-ActiveDirectory_DomainService
ID d’événement : 2094
Catégorie de tâche : Réplication
Niveau : Avertissement
Mots clés : classique
Description : Avertissement de performances : la réplication a été retardée lors de l’application des modifications à l’objet suivant. Si ce message se produit fréquemment, cela indique que la réplication se produit lentement et que le serveur peut avoir des difficultés à suivre les modifications.
Nom de l’objet : <nom de l’objet>
GUID d’objet : <GUID d’objet>
DN de partition : DC=contoso,DC=com
Serveur : xxxx-xxxx-xxxx-xxxx-xxxxxxx._msdcs.contoso.com
Temps écoulé (s) : 11
Action de l'utilisateur
L’une des raisons courantes de ce délai est que cet objet est particulièrement volumineux, soit par la taille de ses valeurs, soit par le nombre de valeurs. Vous devez d’abord déterminer si l’application peut être modifiée pour réduire la quantité de données stockées sur l’objet ou le nombre de valeurs. S’il s’agit d’un grand groupe ou d’une liste de distribution, vous pouvez envisager d’élever le niveau fonctionnel de la forêt à Windows Server 2003 ou version ultérieure, car cela permettra à la réplication de fonctionner plus efficacement. Vous devez évaluer si la plateforme du serveur fournit des performances suffisantes en termes de mémoire et de puissance de traitement. Enfin, vous pouvez envisager de régler la base de données services de domaine Active Directory en déplaçant la base de données et les journaux vers des partitions de disque distinctes.
Si vous souhaitez modifier la limite d’avertissement, la clé de Registre est incluse ci-dessous. La valeur zéro désactive le case activée.
Données supplémentaires
Limite d’avertissement (s) : 10
Limiter la clé de Registre : System\CurrentControlSet\Services\NTDS\Parameters\Replicator attente maximale pour l’objet de mise à jour (secondes)
Nom du journal : Service d’annuaire
Source : Microsoft-Windows-ActiveDirectory_DomainService
ID d’événement : 1083
Catégorie de tâche : Réplication
Niveau : Avertissement
Mots clés : classique
Description :
services de domaine Active Directory n’a pas pu mettre à jour l’objet suivant avec les modifications reçues du service d’annuaire à l’adresse réseau suivante, car services de domaine Active Directory était occupé à traiter les informations.
Objet : <nom de l’objet>
Adresse réseau : xxxxx-xxxx-xxxx-xxxx-xxxxxxx._msdcs.contoso.com
Cette opération sera à nouveau tentée ultérieurement.
Nom du journal : Service d’annuaire
Source : Microsoft-Windows-ActiveDirectory_DomainService
ID d’événement : 1955
Catégorie de tâche : Réplication
Niveau : Informations
Mots clés : classique
Utilisateur : OUVERTURE DE SESSION ANONYME
Description : services de domaine Active Directory rencontré un conflit d’écriture lors de l’application des modifications répliquées à l’objet suivant.
Objet : <nom de l’objet>
Durée en secondes : 48
Les entrées du journal des événements précédant cette entrée indiquent si la mise à jour a été acceptée ou non.
Un conflit d’écriture peut être provoqué par des modifications simultanées apportées au même objet ou des modifications simultanées apportées à d’autres objets dont les attributs font référence à cet objet. Cela se produit généralement lorsque l’objet représente un grand groupe avec de nombreux membres et que le niveau fonctionnel de la forêt est défini sur Windows 2000. Ce conflit a déclenché des nouvelles tentatives de la mise à jour. Si le système semble lent, cela peut être dû à la réplication de ces modifications.
Action de l'utilisateur
Utilisez des groupes plus petits pour cette opération ou augmentez le niveau fonctionnel de la forêt à Windows Server 2003.

Plus d’informations

Par défaut, lorsque vous supprimez un objet Active Directory qui a un nombre exceptionnellement élevé de liens vers l’avant et vers l’arrière, 10 000 liens sont supprimés à la fois. Pendant ce temps, si d’autres threads mettent à jour les objets cibles de ces liens, la transaction de suppression de lien est suspendue jusqu’à ce que les objets soient à nouveau disponibles. Cette suspension peut mettre beaucoup de temps à terminer la transaction de suppression entière. Pendant ce temps, d’autres tâches de réplication sont retardées par cette tâche de longue durée. Par exemple, vous remarquerez peut-être que les mises à jour des mots de passe et de l’appartenance aux groupes ne progressent pas dans la forêt.

Pendant que cette mise à jour est en attente, les administrateurs peuvent voir des conflits d’écriture et des événements d’échec de transaction. En outre, à mesure que des objets supplémentaires sont traités par la réplication, de plus en plus de magasins de versions sont alloués, car la transaction volumineuse en attente ne libère pas son magasin de versions allouées tant que la transaction de suppression n’est pas terminée. Cela peut entraîner des erreurs de magasin de versions et des événements d’avertissement de réplication.

Remarque

  • Le garbage collection n’est pas lié au traitement des suppressions de liens d’appartenance à un groupe.
  • La diminution de la TSL n’est pas une méthode valide pour accélérer les suppressions de liens.
  • La valeur héritée pour la taille de lot du processus Links est de 1 000 dans les versions antérieures à Windows Server 2008 R2. Dans les versions ultérieures, la taille du lot est augmentée à 10 000 afin d’améliorer les performances de suppression dans les forêts pour 2000.
  • Vérifiez les valeurs du paramètre de taille de lot du processus Links . S’il n’est pas défini par défaut, rétablissez la valeur par défaut ou une valeur encore plus petite, telle que 1 000 ou 100.

Les valeurs plus petites réduisent l’utilisation du magasin de versions en supprimant un plus petit nombre d’objets par suppression, ce qui réduit le temps total nécessaire à l’exécution d’une transaction de suppression unique. Cela a l’effet secondaire positif de réduire le magasin de versions et la fenêtre de temps pour les conflits d’écriture, tandis que vous augmentez le temps nécessaire pour refléter avec précision l’appartenance au groupe dans l’annuaire.

Les services Active Directory case activée pour la clé de Registre suivante.

Pour AD DS :

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

Pour AD LDS :

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\<adam instance>\Parameters\Links process batch size
Type : DWORD
Valeur minimale : 100
Valeur maximale : 10000

Cette valeur remplace la valeur par défaut de 10 000 comme nombre de liaisons atomiques à traiter simultanément. Vous n’avez pas besoin de redémarrer le service NTDS ou LDS instance, ni de redémarrer l’ordinateur pour que le paramètre soit effectif.

Après chaque opération atomique, le magasin de versions correspondant est libéré. Le magasin de versions n’est réacquisé que lors de l’opération atomique suivante qui continue de traiter le même objet. Vous avez peut-être un doute sur la diminution de la taille du lot de liaison d’un grand degré. Vous pouvez la combiner avec une augmentation du magasin de versions ESE. Si, pour une raison peut-être pour laquelle vous avez augmenté le magasin de versions, vous pouvez décider d’augmenter le magasin de versions ou de ne pas réduire la valeur de taille de lot du processus Liens .

Si vous souhaitez en savoir plus, consultez les articles suivants :

Solution de contournement

Pour contourner ce problème, définissez la valeur de la taille de lot du processus De liens inférieure à 10 000. Cela réduit le risque qu’une collision d’accès à un objet se produise. En procédant ainsi, vous rendez le processus de réplication de la suppression d’objets volumineux plus fiable. En outre, l’exécution de l’ensemble de la transaction prend désormais plus de temps. Cela vous permet également d’éviter l’épuisement du magasin de versions.

Collecte de données

Si vous avez besoin d’aide du support Microsoft, nous vous recommandons de collecter les informations en suivant les étapes mentionnées dans Collecter des informations à l’aide de TSS pour les problèmes de réplication Active Directory.

References

Si vous souhaitez en savoir plus, consultez les articles suivants :