O processo de coleta de lixo do banco de dados do Active Directory e o cálculo de intervalos permitidos

Este artigo descreve o processo de coleta de lixo do banco de dados do Active Directory e o cálculo de intervalos permitidos.

Aplica-se a: Windows Server 2012 R2, Windows Server 2016, Windows Server 2019
Número de KB original: 198793

Resumo

O banco de dados do Active Directory incorpora um processo de coleta de lixo que é executado independentemente em cada controlador de domínio na empresa.

Mais informações

A coleta de lixo é um processo de limpeza projetado para liberar espaço no banco de dados do Active Directory. Esse processo é executado em todos os controladores de domínio da empresa com um intervalo de tempo de vida padrão de 12 horas. Você pode alterar esse intervalo modificando o atributo garbageCollPeriod no NTDS (objeto de configuração de DS) em toda a empresa.

O caminho do objeto no Contoso.com domínio se assemelharia ao seguinte:
Serviço CN=Directory,CN=Windows NT,CN=Services,CN=Configuration,DC=CONTOSO,DC=COM

Use uma ferramenta de edição do Active Directory para definir o atributo garbageCollPeriod. As ferramentas com suporte incluem scripts Adsiedit.msc, Ldp.exe e ADSI (Active Directory Service Interfaces).

Quando um objeto é excluído, ele não é removido do banco de dados do Active Directory. Em vez disso, o objeto é marcado para exclusão em uma data posterior. Essa marca é replicada para outros controladores de domínio. Portanto, o processo de coleta de lixo começa removendo os restos de objetos excluídos anteriormente do banco de dados. Esses objetos são conhecidos como lápides. Em seguida, o processo de coleta de lixo exclui arquivos de log desnecessários. Por fim, o processo inicia um thread de desfragmentação para reivindicar espaço livre adicional.

Além disso, há dois métodos para desfragmentar o banco de dados do Active Directory. Um método é uma operação de desfragmentação online que é executada como parte do processo de coleta de lixo. A vantagem desse método é que o servidor não precisa ser retirado offline para que a operação seja executada. No entanto, esse método não reduz o tamanho do arquivo de banco de dados do Active Directory (Ntds.dit). O outro método tira o servidor offline e desfragmenta o banco de dados usando o utilitário Ntdsutil.exe. Essa abordagem exige que o banco de dados comece no modo de reparo. A vantagem desse método é que o banco de dados é redimensionado e o espaço não utilizado é removido. Portanto, e o tamanho do arquivo Ntds.dit é reduzido. Para usar esse método, o controlador de domínio deve ser retirado offline.

Limites para garbageCollPeriod:
O valor mínimo é 1 e o máximo é 168 por uma semana. O padrão para o valor é de 12 horas.

Mínimo para o Tempo de Vida de Tombstone:
O mínimo para o Tombstone Lifetime é de 2 dias para fins da suspensão do KCC do cálculo de execução.

A camada de banco de dados do AD impõe uma métrica adicional. Os dias TSL não devem ser menores que três vezes o intervalo do coletor de lixo. Com base no padrão de 12 horas, o TSL é um mínimo de 2 dias. Se o intervalo de GC for de 20 horas, o mínimo de TSL será de 3 dias (deve ser maior que 60 horas). Se o intervalo de GC for de 25 horas, você ultrapassará três dias (com 75 horas) e o mínimo de TSL será de 4 dias.

A captura com as verificações que a camada DB e o KCC executam é que, se o TSL for menor que o mínimo permitido, ele não reverter para o valor mínimo de 2 ou mais dias, mas para o padrão de 60 ou 180 dias.

Importante

Caso o TSL seja corrigido como padrão devido a uma incompatibilidade, o valor do intervalo de coleta de lixo também será definido como o padrão de 12 horas.

Padrões de tempo de vida da lápide

Histórico

O tempo de vida padrão da lápide (TSL) no Windows Server 2003 foi de 60 dias e provou ser muito curto. Por exemplo, um controlador de domínio prestaged pode estar em trânsito por mais de 60 dias. Um administrador pode não resolve uma falha de replicação ou colocar um controlador de domínio offline em operação até que o TSL seja excedido. O Windows Server 2003 Service Pack 1 (SP1) aumentou o TSL de 60 para 180 dias nos seguintes cenários:

  • Um controlador de domínio Windows NT 4.0 é atualizado para o Windows Server 2003 usando a mídia de instalação do Windows Server 2003 SP1 para criar uma nova floresta.
  • Um computador SP1 do Windows Server 2003 cria uma nova floresta.

O Windows Server 2003 SP1 não modifica o valor do TSL quando uma das seguintes condições é verdadeira:

  • Um domínio do Windows 2000 é atualizado para o Windows Server 2003 usando a mídia de instalação do Windows Server 2003 com o SP1.
  • O Windows Server 2003 SP1 está instalado em um controlador de domínio que está executando a versão de versão original do Windows Server 2003.

Aumentar o TSL para um domínio para 180 dias tem os seguintes benefícios:

  • Os backups usados em cenários de recuperação de dados têm uma vida útil mais longa.
  • Os backups de estado do sistema usados para instalação de promoções de mídia têm uma vida útil mais longa.
  • Os controladores de domínio podem ficar offline por mais tempo. Computadores prestaged abordam a expiração TSL com menos frequência.
  • Um controlador de domínio pode retornar com êxito ao domínio após um tempo mais longo offline.
  • O conhecimento de objetos excluídos é mantido por mais tempo no controlador de domínio de origem.

A configuração padrão em sua floresta dependerá do sistema operacional no 'nascimento' da floresta e dos métodos de atualização daí como acima.

Se você não tiver certeza sobre o valor do TSL usado em sua floresta, recomendamos defini-lo explicitamente e também msDS-deletedObjectLifetime conforme necessário.
Referência: a lixeira do AD: compreensão, implementação, melhores práticas e solução de problemas