A exclusão de objetos do Active Directory que têm muitos links causa falhas de replicação

Este artigo fornece uma solução alternativa para um problema que ocorre quando você exclui objetos do Active Directory que contêm muitos links de encaminhamento.

Número original do KB: 3149779

Resumo

Este artigo discute um problema que ocorre quando você exclui objetos do Active Directory que contêm muitos links de encaminhamento. Veja a seguir alguns exemplos comuns:

  • Associações de grupo (o atributo de membro)
  • Credenciais de usuário móvel (o atributo ms-PKI-AccountCredentials)
  • Links de usuário expostos do RODC (controlador de domínio somente leitura) (o atributo mds-revealedusers)

O número de links onde você começa a ver problemas pode ser tão baixo quanto 50.000. Em um único objeto, pode haver vários milhões de links.

A chave do Registro discutida neste artigo deve ser aplicada somente a controladores de domínio (DCs) e servidores Lightweight Directory Services (LDS) que estão enfrentando o problema descrito na seção "Sintomas". Seguindo as recomendações fornecidas aqui, você pode diminuir o desempenho da replicação do Active Directory, mas aumentar a confiabilidade do processamento correto da exclusão desses objetos grandes.

Sintomas

Ao excluir objetos do Active Directory que contêm muitos links de encaminhamento, você pode encontrar uma falha de replicação. Por exemplo, você exclui grupos com grandes conjuntos de membros ou rebaixa e exclui contas de computador do RODC que têm muitos links para contas de usuários que têm suas senhas expostas no RODC.

As seguintes condições são os principais indicadores de que esta solução se aplica ao problema:

  • O nível funcional da floresta é Windows Server 2003 ou versão posterior do Windows Server, portanto, a replicação de valor de link é usada.

  • O evento 2094 (atraso de replicação) ocorre várias vezes, fazendo referência ao mesmo objeto excluído.

  • Os eventos 1083 e 1955 (conflito de gravação) são registrados em tempo próximo ao log do evento 2094 que faz referência ao mesmo objeto excluído.

  • O controlador de domínio (DC) afetado também pode relatar que o repositório de versão está esgotado (ID do Evento 623). O esgotamento do repositório de versão nem sempre ocorre nesse cenário. Outros fatores que aumentam a probabilidade de esgotamento do repositório de versão incluem uma alta taxa de alterações em objetos do Active Directory, locais e replicados, bem como outras operações de longa execução, como consultas profundas.

  • A replicação do Active Directory falha com o erro 8409, o erro "Ocorreu um erro no banco de dados" ou outros eventos citam códigos de status relacionados mencionados na tabela a seguir:

    Hex Decimal Simbólico Amigável
    Nº 000020D9 8409 ERROR_DS_DATABASE_ERROR Ocorreu um erro de banco de dados

    Se a lixeira do Active Directory estiver habilitada, os erros de replicação poderão não ocorrer por 60 a 180 dias (tempo de vida do objeto excluído) após a exclusão do objeto. Os problemas ocorrem quando o objeto faz a transição do status excluído para o status reciclado.

Entradas de log de eventos

Quando o problema ocorre, os seguintes eventos são registrados:

Nome do Log: Serviço de Diretório
Fonte: Microsoft-Windows-ActiveDirectory_DomainService
ID do evento: 2094
Categoria da tarefa: Replicação
Nível: Aviso
Palavras-Chave: Clássico
Descrição: Aviso de desempenho: a replicação foi atrasada ao aplicar alterações no objeto a seguir. Se essa mensagem ocorrer com freqüência, ela indicará que a replicação está ocorrendo lentamente e que o servidor pode ter dificuldade em acompanhar as alterações.
DN do objeto: <nome do objeto>
GUID do objeto: <GUID do objeto>
DN da partição: DC=contoso,DC=com
Servidor: xxxx-xxxx-xxxx-xxxx-xxxxxxx._msdcs.contoso.com
Tempo decorrido (seg): 11
Ação do usuário
Um motivo comum para ver esse atraso é que esse objeto é especialmente grande, seja no tamanho de seus valores ou no número de valores. Primeiro, você deve considerar se o aplicativo pode ser alterado para reduzir a quantidade de dados armazenados no objeto ou o número de valores. Se for um grupo grande ou uma lista de distribuição, você pode considerar aumentar o nível funcional da floresta para o Windows Server 2003 ou superior, pois isso permitirá que a replicação funcione com mais eficiência. Você deve avaliar se a plataforma do servidor fornece desempenho suficiente em termos de memória e poder de processamento. Por fim, talvez você queira considerar o ajuste do banco de dados dos Serviços de Domínio Active Directory movendo o banco de dados e os logs para partições de disco separadas.
Se você quiser alterar o limite de aviso, a chave do Registro será incluída abaixo. Um valor zero desativará a verificação.
Dados Adicionais
Limite de aviso (segundos): 10
Limitar chave do Registro: System\CurrentControlSet\Services\NTDS\Parameters\Replicator espera máxima pelo objeto de atualização (segundos)
Nome do Log: Serviço de Diretório
Fonte: Microsoft-Windows-ActiveDirectory_DomainService
ID do evento: 1083
Categoria da tarefa: Replicação
Nível: Aviso
Palavras-Chave: Clássico
Descrição:
Os Serviços de Domínio Active Directory não puderam atualizar o objeto a seguir com as alterações recebidas do serviço de diretório no endereço de rede a seguir porque os Serviços de Domínio Active Directory estavam ocupados processando informações.
Objeto: <nome do objeto>
Endereço de rede: xxxxx-xxxx-xxxx-xxxx-xxxxxxx._msdcs.contoso.com
Esta operação será tentada novamente mais tarde.
Nome do Log: Serviço de Diretório
Fonte: Microsoft-Windows-ActiveDirectory_DomainService
ID do evento: 1955
Categoria da tarefa: Replicação
Nível: Informações
Palavras-chave: Clássico
Usuário: LOGON ANÔNIMO
Descrição: os Serviços de Domínio Active Directory encontraram um conflito de gravação ao aplicar alterações replicadas ao objeto a seguir.
Objeto: <nome do objeto>
Tempo em segundos: 48
As entradas do log de eventos anteriores a essa entrada indicarão se a atualização foi aceita ou não.
Um conflito de gravação pode ser causado por alterações simultâneas no mesmo objeto ou alterações simultâneas em outros objetos que têm atributos que fazem referência a esse objeto. Isso geralmente ocorre quando o objeto representa um grupo grande com muitos membros e o nível funcional da floresta é definido como Windows 2000. Esse conflito acionou novas tentativas adicionais da atualização. Se o sistema parecer lento, pode ser porque a replicação dessas alterações está ocorrendo.
Ação do usuário
Use grupos menores para essa operação ou aumente o nível funcional da floresta para o Windows Server 2003.

Mais informações

Por padrão, quando você exclui um objeto do Active Directory que tem um número excepcionalmente grande de links para frente e para trás, 10.000 links são excluídos por vez. Durante esse tempo, se outros threads atualizarem os objetos de destino desses links, a transação de exclusão de link será suspensa até que os objetos estejam disponíveis novamente. Essa suspensão pode fazer com que toda a transação de exclusão demore muito para ser concluída. Durante esse tempo, outras tarefas de replicação são retidas por essa tarefa de execução longa. Por exemplo, você pode observar que as senhas e as atualizações de associação de grupo não estão progredindo em toda a floresta.

Enquanto esta atualização estiver pendente, os administradores podem ver conflitos de gravação e eventos de falha de transação. Além disso, à medida que objetos adicionais são processados pela replicação, mais e mais repositório de versão é alocado porque a transação grande pendente não libera seu repositório de versões alocado até que a transação de exclusão seja concluída. Isso pode causar erros de repositório de versão e eventos de avisos de replicação.

Observação

  • A coleta de lixo não está relacionada ao processamento de exclusões de link de associação de grupo.
  • Diminuir o TSL não é um método válido para acelerar as exclusões de links.
  • O valor herdado para o tamanho do lote do processo Links é 1.000 em versões anteriores ao Windows Server 2008 R2. Em versões posteriores, o tamanho do lote é aumentado para 10.000 para melhorar o desempenho de recuperação em florestas que têm a Lixeira habilitada.
  • Verifique os valores do parâmetro Tamanho do lote do processo Links. Se não for padrão, defina o valor de volta para o padrão ou um valor ainda menor, como 1.000 ou 100.

Valores menores diminuem o uso do repositório de versão excluindo um número menor de objetos por exclusão, reduzindo assim o tempo total para executar uma única transação de exclusão. Isso tem o efeito colateral positivo de reduzir o repositório de versão e a janela de tempo para conflitos de gravação enquanto você aumenta o tempo necessário para refletir com precisão a associação de grupo no diretório.

Os serviços do Active Directory verificam a seguinte chave do 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

Esse valor substitui o valor padrão de 10.000 como o número de links atômicos a serem processados ao mesmo tempo. Você não precisa reiniciar o serviço de instância NTDS ou LDS ou reiniciar o computador para tornar a configuração efetiva.

Após cada operação atômica, o repositório de versão correspondente é liberado. O repositório de versão é readquirido somente durante a próxima operação atômica que continua a processar o mesmo objeto. Você pode ter dúvidas sobre diminuir o tamanho do lote de links em um grande grau. Você pode combiná-lo com um aumento do armazenamento de versões do ESE. Se talvez por um motivo você tenha aumentado o armazenamento de versão, você pode decidir aumentar o armazenamento de versão um pouco mais ou não diminuir tanto o valor do tamanho do lote do processo de links.

Para obter mais informações, consulte os seguintes artigos:

Solução alternativa

Para contornar esse problema, defina o valor do tamanho do lote do processo Links menor que 10.000. Isso diminui o potencial de ocorrência de uma colisão de acesso a objetos. Ao fazer isso, você torna o processo de replicação de exclusão de objetos grandes mais confiável. Além disso, agora leva mais tempo para concluir toda a transação. Isso também ajuda a evitar o esgotamento do repositório de versões.

Coleta de dados

Se você precisar de ajuda do suporte da Microsoft, recomendamos que você colete as informações seguindo as etapas mencionadas em Coletar informações usando o TSS para problemas de replicação do Active Directory.

Referências

Para obter mais informações, consulte os seguintes artigos: