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

En este artículo se proporciona una solución alternativa para un problema que se produce al eliminar objetos de Active Directory que contienen muchos vínculos directos.

Se aplica a: Windows Server 2012 R2
Número de KB original: 3149779

Resumen

En este artículo se describe un problema que se produce al eliminar objetos de Active Directory que contienen muchos vínculos directos. Estos son algunos ejemplos comunes:

  • Pertenencias a grupos (el atributo de miembro)
  • Credenciales de usuario móviles (el atributo ms-PKI-AccountCredentials)
  • Vínculos de usuario expuestos del controlador de dominio de solo lectura (RODC) (el atributo mds-revealedusers)

El número de vínculos en los que empieza 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 solo se debe aplicar a los controladores de dominio (DC) y a los servidores ligeros de Servicios de directorio (LDS) que experimentan el problema que se describe en la sección "Síntomas". Es probable que este problema se produzca en los controladores de dominio de Windows Server 2012, Windows Server 2012 R2 y Windows Server 2016. Al seguir las recomendaciones que se proporcionan aquí, puede reducir el rendimiento de la replicación de Active Directory, pero aumentar la confiabilidad de procesar correctamente la eliminación de estos objetos grandes.

Síntomas

Al eliminar objetos de Active Directory que contienen muchos vínculos directos, es posible que se produzca un error de replicación. Por ejemplo, elimina grupos con grandes conjuntos de pertenencia, o bien degrada y elimina cuentas de equipo RODC que tienen muchos vínculos a cuentas de usuarios que tienen su contraseña expuesta en el RODC.

Las condiciones siguientes son los indicadores clave que esta solución aplica al problema:

  • El nivel funcional del bosque es Windows Server 2003 o una versión posterior de Windows Server, por lo que se usa la replicación de valores de vínculo.

  • El evento 2094 (retraso de replicación) se produce varias veces, haciendo referencia al mismo objeto eliminado.

  • Los eventos 1083 y 1955 (conflicto de escritura) se registran cerca del registro del evento 2094 que hace referencia al mismo objeto eliminado.

  • El controlador de dominio (DC) afectado también puede informar de que el almacén de versiones está agotado (id. de evento 623). El agotamiento del almacén de versiones no siempre se produce en este escenario. Otros factores que aumentan la probabilidad de agotamiento del almacén de versiones incluyen una alta tasa de cambios en los objetos de Active Directory, tanto locales como replicados, así como otras operaciones de larga duración, como consultas profundas.

  • Se produce un error en la replicación de Active Directory con el error 8409, el error "Se ha producido un error de base de datos" u otros eventos que citan códigos de estado relacionados que se mencionan en la tabla siguiente:

    Hexa Decimal Simbólico Amable
    000020D9 8409 ERROR_DS_DATABASE_ERROR Se ha producido un error de base de datos

    Si la papelera de reciclaje de Active Directory está habilitada, es posible que los errores de replicación no se produzcan durante 60 a 180 días (duración del objeto eliminado) después de eliminar el objeto. Los problemas se producen cuando el objeto pasa del estado eliminado al estado reciclado.

Entradas del registro de eventos

Cuando se produce el problema, se registran los siguientes eventos:

Nombre del registro: Servicio de directorio
Origen: Microsoft-Windows-ActiveDirectory_DomainService
Identificador de evento: 2094
Categoría de tarea: Replicación
Nivel: Advertencia
Palabras clave: Clásico
Descripción: Advertencia de rendimiento: la replicación se retrasó al aplicar los cambios en el objeto siguiente. Si este mensaje se produce con frecuencia, indica que la replicación se está produciendo lentamente y que el servidor puede tener dificultades para mantenerse al día con los cambios.
DN del objeto: <nombre del objeto>
GUID de objeto: <GUID de objeto>
DN de partición: DC=contoso,DC=com
Servidor: xxxx-xxxx-xxxx-xxxx-xxxxxxx._msdcs.contoso.com
Tiempo transcurrido (segundos): 11
Acción del usuario
Una razón común para ver este retraso es que este objeto es especialmente grande, ya sea en el tamaño de sus valores o en el número de valores. Primero debe considerar si la aplicación se puede cambiar para reducir la cantidad de datos almacenados en el objeto o el número de valores. Si se trata de un grupo grande o una lista de distribución, es posible que considere la posibilidad de elevar el nivel funcional del bosque a Windows Server 2003 o superior, ya que esto permitirá que la replicación funcione de forma más eficaz. Debe evaluar si la plataforma de servidor proporciona un rendimiento suficiente en términos de memoria y potencia de procesamiento. Por último, puede considerar la posibilidad de ajustar la base de datos de Servicios de dominio de Active Directory moviendo la base de datos y los registros a particiones de disco independientes.
Si desea cambiar el límite de advertencia, la clave del Registro se incluye a continuación. Un valor de cero deshabilitará la comprobación.
Datos adicionales
Límite de advertencia (ss): 10
Limitar clave del Registro: System\CurrentControlSet\Services\NTDS\Parameters\Replicator maximum wait for update object (ss)
Nombre del registro: Servicio de directorio
Origen: Microsoft-Windows-ActiveDirectory_DomainService
Identificador de evento: 1083
Categoría de tarea: Replicación
Nivel: Advertencia
Palabras clave: Clásico
Descripción:
Servicios de dominio de Active Directory no se pudo actualizar el siguiente objeto con los cambios recibidos del servicio de directorio en la siguiente dirección de red porque Servicios de dominio de Active Directory estaba ocupado procesando información.
Objeto: <nombre del objeto>
Dirección de red: xxxxx-xxxx-xxxx-xxxx-xxxxxxx._msdcs.contoso.com
Esta operación se volverá a intentar más tarde.
Nombre del registro: Servicio de directorio
Origen: Microsoft-Windows-ActiveDirectory_DomainService
Identificador de evento: 1955
Categoría de tarea: Replicación
Nivel: Información
Palabras clave: Clásico
Usuario: INICIO DE SESIÓN ANÓNIMO
Descripción: Servicios de dominio de Active Directory encontró un conflicto de escritura al aplicar cambios replicados al objeto siguiente.
Objeto: <nombre del objeto>
Tiempo en segundos: 48
Las entradas del registro de eventos anteriores a esta entrada indicarán si se ha aceptado o no la actualización.
Un conflicto de escritura puede deberse a cambios simultáneos en el mismo objeto o cambios simultáneos en otros objetos que tienen atributos que hacen referencia a este objeto. Esto suele ocurrir cuando el objeto representa un grupo grande con muchos miembros y el nivel funcional del bosque se establece en Windows 2000. Este conflicto desencadenó reintentos adicionales de la actualización. Si el sistema parece lento, podría deberse a que se está produciendo la replicación de estos cambios.
Acción del usuario
Use grupos más pequeños para esta operación o aumente el nivel funcional del bosque a Windows Server 2003.

Más información

De forma predeterminada, cuando se elimina un objeto de Active Directory que tiene un número excepcionalmente grande de vínculos hacia delante y hacia atrás, se eliminan 10 000 vínculos a la vez. Durante este tiempo, si otros subprocesos actualizan los objetos de destino de estos vínculos, la transacción de eliminación de vínculos se suspende hasta que los objetos estén disponibles de nuevo. Esta suspensión puede hacer que toda la transacción de eliminación lleve mucho tiempo finalizar. Durante este tiempo, esta tarea de ejecución prolongada mantiene otras tareas de replicación. Por ejemplo, puede observar que las contraseñas y las actualizaciones de pertenencia a grupos no progresan en todo el bosque.

Mientras esta actualización está pendiente, los administradores pueden ver conflictos de escritura y eventos de error de transacción. Además, a medida que la replicación procesa objetos adicionales, se asigna cada vez más almacén de versiones porque la transacción grande pendiente no libera el almacén de versiones asignadas hasta que finaliza la transacción de eliminación. Esto puede provocar errores de almacén de versiones y eventos de advertencias de replicación.

Nota:

  • La recolección de elementos no utilizados no está relacionada con el procesamiento de eliminaciones de vínculos de pertenencia a grupos.
  • La disminución de TSL no es un método válido para acelerar las eliminaciones de vínculos.
  • El valor heredado del tamaño del lote de proceso de vínculos es de 1000 en versiones anteriores a Windows Server 2008 R2. En versiones posteriores, el tamaño del lote se aumenta a 10 000 para mejorar el rendimiento de la eliminación en bosques que tienen habilitada la Papelera de reciclaje.
  • Compruebe los valores del parámetro Links process batch size (Tamaño de lote de proceso de vínculos ). Si no es predeterminado, vuelva a establecer el valor en su valor predeterminado o en un valor aún más pequeño, como 1000 o 100.

Los valores más pequeños reducen el uso del almacén de versiones mediante la eliminación de un número menor de objetos por eliminación, lo que reduce el tiempo total para realizar una sola transacción de eliminación. Esto tiene el efecto secundario positivo de reducir el almacén de versiones y el período de tiempo para los conflictos de escritura mientras aumenta el tiempo necesario para reflejar con precisión la pertenencia al grupo en el directorio.

Los servicios de Active Directory buscan la siguiente clave del Registro.

Para AD DS:

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

Para AD LDS:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\<adam instance>\Parameters\Links process batch size
Tipo: DWORD
Valor mínimo: 100
Valor máximo: 10000

Este valor invalida el valor predeterminado de 10 000 como el número de vínculos atómicos que se procesarán a la vez. No es necesario reiniciar el servicio de instancia NTDS o LDS, ni reiniciar el equipo para que la configuración sea efectiva.

Después de cada operación atómica, se libera el almacén de versiones correspondiente. El almacén de versiones solo se vuelve a adquirir durante la siguiente operación atómica que sigue procesando el mismo objeto. Es posible que tengas dudas sobre cómo rechazar el tamaño del lote de vínculos en gran medida. Puede combinarlo con un aumento del almacén de versiones ese. Si tal vez por una razón de que ha aumentado el almacén de versiones, puede decidir aumentar el almacén de versiones algo más o no reducir tanto el valor de tamaño de lote del proceso de vínculos .

Para más información, consulte los siguientes artículos:

Solución alternativa

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

Recolección de datos

Si necesita ayuda del soporte técnico de Microsoft, le recomendamos que recopile la información siguiendo los pasos mencionados en Recopilación de información mediante TSS para problemas de replicación de Active Directory.

Referencias

Para más información, consulte los siguientes artículos: