Compartir a través de


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 a un problema que se produce al eliminar objetos de Active Directory que contienen muchos vínculos hacia delante.

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 hacia delante. A continuación encontrará algunos ejemplos comunes:

  • Pertenencias a grupos (el atributo member)
  • 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 (CONTROLADORES de dominio) y a los servidores ligeros de Servicios de directorio (LDS) que experimentan el problema que se describe en la sección "Síntomas". Al seguir las recomendaciones que se proporcionan aquí, puede reducir el rendimiento de la replicación de Active Directory, pero aumentar la confiabilidad del procesamiento correcto de la eliminación de estos objetos grandes.

Síntomas

Al eliminar objetos de Active Directory que contienen muchos vínculos reenviados, puede producirse un error de replicación. Por ejemplo, puede eliminar grupos con grandes conjuntos de pertenencia, o bien degradar y, a continuación, eliminar 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 tiempo cercano al 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:

    Hex Decimal Simbólico Descriptiva
    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

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ásica
Descripción: advertencia de rendimiento: la replicación se retrasó al aplicar los cambios al siguiente objeto. 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 de objeto: <nombre de 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 (ss): 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. En primer lugar, 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, puede considerar 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 del servidor proporciona un rendimiento suficiente en términos de memoria y potencia de procesamiento. Por último, puede considerar la posibilidad de optimizar 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 (secs)
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ásica
Descripción:
Servicios de dominio de Active Directory no 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 de 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 los cambios replicados al objeto siguiente.
Objeto: <nombre de objeto>
Tiempo en segundos: 48
Las entradas del registro de eventos anteriores a esta entrada indicarán si se aceptó 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 aparece lento, podría deberse a la replicación de estos cambios.
Acción del usuario
Usa grupos más pequeños para esta operación o eleva 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 tarde mucho tiempo en 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.

Aunque 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 más y más almacén de versiones porque la transacción grande pendiente no libera su 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.
  • Reducir TSL no es un método válido para acelerar las eliminaciones de vínculos.
  • El valor heredado para el tamaño del lote de proceso vínculos es de 1000 en versiones anteriores a Windows Server 2008 R2. En versiones posteriores, el tamaño del lote 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 tamaño del lote de proceso links. Si no es predeterminado, vuelva a establecer el valor en su valor predeterminado o un valor aún menor, como 1000 o 100.

Los valores más pequeños reducen el uso del almacén de versiones eliminando 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 de 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 comprueban 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 para procesar a la vez. No tiene que 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 segundo pensamientos sobre cómo bajar el tamaño del lote de vínculo por un gran grado. Puede combinarlo con un aumento del almacén de versiones de ESE. Si quizá por un motivo que haya aumentado el almacén de versiones, puede decidir aumentar el almacén de versiones algo más o no reducir el valor de tamaño del lote de proceso de vínculos tanto.

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 del proceso vínculos inferior a 10 000. Esto reduce la posibilidad de que se produzca una colisión de acceso a objetos. Al hacerlo, se hace que el proceso de replicación de la eliminación de objetos de gran tamaño sea 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, se recomienda recopilar 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: