Eliminar objetos de Active Directory que tienen muchos vínculos provoca errores de replicación

Se aplica a: Windows Server 2012 R2 StandardWindows Server 2012 StandardWindows Server 2012 Standard

Resumen


Este artículo describe un problema que se produce cuando se eliminan objetos de Active Directory que contienen muchos vínculos hacia adelante. Algunos ejemplos son:
  • Pertenencia al grupo (el atributo de miembro)
  • Credenciales de usuario móvil (el atributo ms-PKI-credenciales)
  • El controlador de dominio de sólo lectura (RODC) expone vínculos de usuario (el atributo mds-revealedusers)

El número de vínculos donde empezar a ver problemas puede ser tan bajo como 50.000. En un solo objeto, puede haber varios millones de vínculos.

La clave del registro que se describe en este artículo debe aplicarse únicamente a los controladores de dominio (DC) y servidores de servicios de directorio ligero (LDS) que están experimentando el problema que se describe en la sección "Síntomas". Este problema es probable que se produzcan en los controladores de dominio de Windows Server de 2016, 2012 R2 de Windows Server y Windows Server 2012. Si sigue las recomendaciones que se dan aquí, puede disminuir el rendimiento de la replicación de Active Directory pero aumentar la confiabilidad de procesar correctamente la eliminación de dichos objetos grandes.

Síntomas


Cuando se eliminan objetos de Active Directory que contienen muchos vínculos hacia adelante, se puede producir error de replicación. Por ejemplo, eliminar grupos con pertenencia a grandes conjuntos, o degradar y, a continuación, eliminar las cuentas de equipo RODC que tienen muchos vínculos a las cuentas de los usuarios que tengan sus contraseñas expuestas en el RODC.

Las condiciones siguientes son los indicadores clave que se aplica esta solución para el problema:
 
  • El nivel funcional del bosque es Windows Server 2003 o una versión posterior de Windows Server, por lo que se utiliza la replicación de valor vinculado.
  • Evento 2094 (retraso de la replicación) se produce varias veces, hacer referencia a la misma eliminó el objeto.
  • Eventos 1083 y 1955 (conflicto de escritura) se registra en la proximidad de tiempo de cierre para el registro del evento 2094 hace referencia al mismo objeto eliminado.
  • El controlador de dominio afectado (DC) también puede informar de que se agote el almacén de versiones (Id. de evento 623). Agotamiento del almacén de versiones no siempre es así en esta situación. Otros factores que aumentan la probabilidad de agotamiento del almacén de versión son una alta tasa de cambios en los objetos de Active Directory, locales y replicados, así como otras operaciones de larga ejecución como consultas profundas.
  • Se produce un error en la replicación de Active Directory con error 8409, error "se ha producido un error de base de datos", u otros eventos citan los códigos de estado relacionadas que se mencionan en la siguiente tabla:
    Hex Decimal Simbólico Descriptivo
    000020D9 8409 ERROR_DS_DATABASE_ERROR Se ha producido un error de base de datos
Si está habilitada la Papelera de reciclaje de Active Directory, los errores de replicación no pueden producirse por 60 a 180 días (duración de los objetos eliminados) después de elimina el objeto. Los problemas se producen cuando el objeto realiza la transición desde el estado eliminado el estado reciclado.

Entradas del registro de eventos

Cuando se produce el problema, se graban los sucesos siguientes:

Log Name:      Directory ServiceSource:        Microsoft-Windows-ActiveDirectory_DomainServiceEvent ID:      2094Task Category: ReplicationLevel:         WarningKeywords:      ClassicDescription: Performance warning: replication was delayed while applying changes to the following object. If this message occurs frequently, it indicates that the replication is occurring slowly and that the server may have difficulty keeping up with changes. Object DN: <object name>Object GUID: <object GUID>Partition DN: DC=contoso,DC=comServer: xxxx-xxxx-xxxx-xxxx-xxxxxxx._msdcs.contoso.comElapsed Time (secs): 11User Action A common reason for seeing this delay is that this object is especially large, either in the size of its values, or in the number of values. You should first consider whether the application can be changed to reduce the amount of data stored on the object, or the number of values.  If this is a large group or distribution list, you might consider raising the forest functional level to Windows Server 2003 or greater, since this will enable replication to work more efficiently. You should evaluate whether the server platform provides sufficient performance in terms of memory and processing power. Finally, you may want to consider tuning the Active Directory Domain Services database by moving the database and logs to separate disk partitions.If you wish to change the warning limit, the registry key is included below. A value of zero will disable the check. Additional Data Warning Limit (secs): 10Limit Registry Key: System\CurrentControlSet\Services\NTDS\Parameters\Replicator maximum wait for update object (secs) Log Name:      Directory ServiceSource:        Microsoft-Windows-ActiveDirectory_DomainServiceEvent ID:      1083Task Category: ReplicationLevel:         WarningKeywords:      ClassicDescription:Active Directory Domain Services could not update the following object with changes received from the directory service at the following network address because Active Directory Domain Services was busy processing information. Object: <object name> Network address: xxxxx-xxxx-xxxx-xxxx-xxxxxxx._msdcs.contoso.com This operation will be tried again later.Log Name:      Directory ServiceSource:        Microsoft-Windows-ActiveDirectory_DomainServiceEvent ID:      1955Task Category: ReplicationLevel:         InformationKeywords:      ClassicUser:          ANONYMOUS LOGONDescription: Active Directory Domain Services encountered a write conflict when applying replicated changes to the following object. Object: <object name>Time in seconds: 48 Event log entries preceding this entry will indicate whether or not the update was accepted. A write conflict can be caused by simultaneous changes to the same object or simultaneous changes to other objects that have attributes referencing this object. This commonly occurs when the object represents a large group with many members, and the functional level of the forest is set to Windows 2000. This conflict triggered additional retries of the update. If the system appears slow, it could be because replication of these changes is occurring. User Action Use smaller groups for this operation or raise the forest functional level to Windows Server 2003.

Más información


De forma predeterminada, cuando se elimina un objeto de Active Directory que tiene un número excepcionalmente elevado de vínculos hacia adelante y hacia atrás, se eliminan 10.000 vínculos a la vez. Durante este tiempo, si otros subprocesos actualización los objetos de destino de estos vínculos, la transacción de eliminación de vínculo se suspende hasta que los objetos están disponibles de nuevo. Esta suspensión puede provocar la transacción de eliminación completa a tardar mucho tiempo en Finalizar. Durante este tiempo, otras tareas de replicación se entorpecida por esta tarea de larga duración. Por ejemplo, puede observar que las contraseñas y las actualizaciones de pertenencia al grupo no están progresando en todo el bosque.

Mientras esta actualización está pendiente, los administradores pueden ver conflictos de escritura y los sucesos de error de transacción. También, como objetos adicionales son procesados por la replicación, se asigna más almacén de versiones debido a la gran transacción pendiente no libera su almacén de versiones asignada hasta que finalice la transacción de eliminación. Esto puede provocar errores de almacén de versión y sucesos de replicación advertencias.

Notas:
 
  • Recolección de elementos no está relacionada con el procesamiento de las eliminaciones de vínculo de pertenencia a grupo.
  • Disminuir TSL no es un método válido de la aceleración de las eliminaciones de vínculo.
  • El valor para tamaño de lote de proceso de vínculos heredado es 1.000 en versiones anteriores a Windows Server 2008 R2. En versiones posteriores, se aumenta el tamaño del lote a 10.000 para mejorar el rendimiento de recuperar en los bosques que tienen habilitada la Papelera de reciclaje.
  • Compruebe los valores del parámetro de tamaño de lote de proceso de vínculos . Si es no predeterminado, establezca el valor a su valor predeterminado o un valor incluso más pequeño como incluso 10, 100 o 1.000.

    Uso del almacén de versión de disminución de menor valores eliminando un número menor de objetos por eliminar lo que reduce el tiempo total para realizar una sola eliminar transacciones. Esto tiene el efecto secundario positivo de reducir el almacén de versiones y conflictos de escritura mientras en la ventana de tiempo aumentan el tiempo necesario para reflejar con precisión la pertenencia al grupo en el directorio.

Comprobación servicios de Active Directory para la siguiente clave del registro.

AD DS:

Tamaño del lote de proceso HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Parameters\Links
Para AD LDS:

Tamaño de lote de proceso HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ < instancia adam > \Parameters\Links
Tipo: DWORD

Valor mínimo: 1000

Valor máximo: 10000

Este valor reemplaza el valor predeterminado de 10.000 como el número de vínculos atómica a procesar a la vez. No tienes que reiniciar el servicio de instancia NTDS o LDS o reinicie el equipo para que surtan efecto la configuración.

Después de cada operación atómica, se libera el almacén de versión correspondiente. El almacén de versiones se vuelva a adquirir sólo durante la siguiente operación atómica que continúa procesando el mismo objeto. Puede que tenga dudas acerca de cómo activar el tamaño de lote de vínculo por un alto grado. Se puede combinar con un aumento del almacén de versiones de ESE. Si tal vez por un motivo que han aumentado el almacén de versiones, puede decidir aumentar versión almacenar algo más o no disminuir el valor de tamaño del lote de proceso vínculos mucho.

Consulte los siguientes artículos para obtener más información:

Solución alternativa


Para evitar este problema, establezca el valor de tamaño del lote de proceso vínculos inferior a 10.000. Esto reduce la posibilidad de una colisión de acceso del objeto que se produzca. Al hacerlo, realizar el proceso de replicación de la eliminación del objeto grande más confiable. Además, ahora tarda más tiempo en completar toda la transacción. Esto también ayuda a evitar el agotamiento del almacén de versión.

Referencias