Compartilhar via


ID de evento DFSR 2213 no Windows Server 2008 R2

Este artigo descreve um problema que dispara a ID de evento 2213 no Windows 2008 ou Windows 2012.

Aplica-se a: Windows Server 2008 R2 Service Pack 1
Número original do KB: 2846759

Resumo

A Microsoft introduziu uma nova funcionalidade no serviço DFSR (Replicação DFS) para Windows Server 2008 R2 por meio de 2663685 de hotfix. Depois de instalar o hotfix 2663685 ou uma versão posterior do Dfsrs.exe no Windows Server 2008 R2, o Serviço DFSR não executa mais a recuperação automática do banco de dados ESE (Mecanismo de Armazenamento Extensível) depois que o banco de dados passa por um desligamento sujo. Em vez disso, quando o novo comportamento DFSR é disparado, a ID de evento 2213 é registrada no log DFSR. Um administrador do DFSR deve retomar manualmente a replicação depois que um desligamento sujo for detectado pelo DFSR.

O Windows Server 2012 exibe esse comportamento por padrão.

O serviço DFSR mantém um banco de dados ESE por volume em volumes que hospedam uma pasta replicada. O DFSR usa esse banco de dados para armazenar metadados sobre cada arquivo e pasta na pasta replicada. A integridade do banco de dados deve ser mantida para garantir que o serviço continue funcionando corretamente.

Quando o DFSR é notificado de que o serviço deve ser desligado, ele começa a confirmar todas as alterações pendentes no banco de dados do ESE. O desligamento sujo no DFSR ocorre quando o serviço DFSR não pode confirmar todas as alterações pendentes no banco de dados DSFR ESE antes que o serviço DFSR seja desligado. Durante a inicialização, o serviço DFSR verifica a integridade do banco de dados.

A recuperação de desligamento sujo pode causar grandes pendências e estas, por sua vez, podem causar conflitos de replicação. Em alguns casos, antes do lançamento da correção no 2780453 de correção, o arquivo vencedor pode não ser a versão desejada pelo usuário final. A atualização para interromper a replicação durante o desligamento sujo foi concebida como uma proteção que permite que os administradores façam backup dos dados para capturar deltas, já que o último backup foi feito antes que a replicação seja retomada.

Depois de instalar o hotfix 2780453, você não precisa mais pausar a replicação durante um desligamento sujo. A correção do hotfix 2780453 está incluída em todas as mídias padrão do Windows 2012.

Práticas recomendadas

Práticas recomendadas para AutoRecuperação com base na função de servidor, no sistema operacional e no nível do patch:

Função Windows Server 2008 R2 Windows Server 2008 R2 com KB 2780453 instalado Windows Server 2012
DC Ativado Ativado Ativado
Nó de Cluster Ativado Ativado Ativado
Servidor DFSR gravável Desativado Ativado Ativado
Servidor DFSR somente leitura Ativado Ativado Ativado

Desabilitar a funcionalidade Parar Replicação na Recuperação Automática

Para que o DFSR execute a Recuperação Automática quando um desligamento de banco de dados sujo for detectado, edite o seguinte valor do Registro após a instalação do hotfix 2780453 no Windows Server 2008 R2. Você pode implantar essa alteração em todas as versões do Windows Server 2012. Se o valor não existir, você deverá criá-lo.

  • Chave: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\DFSR\Parameters
  • Valor: StopReplicationOnAutoRecovery
  • Tipo: Dword
  • Dados: 0

Retomar a replicação após o registro do evento 2213

Depois que o evento 2213 for registrado, um administrador deverá executar um comando WMIC para retomar a replicação. As especificações do comando são fornecidas no texto da ID de evento 2213.

Etapa 1: Etapas de recuperação para a ID do Evento 2213 registrada no servidor DFSR

  1. Faça backup dos arquivos em todas as pastas replicadas no volume. Não fazer isso pode resultar em perda de dados devido à resolução inesperada de conflitos durante a recuperação das pastas replicadas.

  2. Para retomar a replicação desse volume, use o ResumeReplication método WMI da DfsrVolumeConfig classe. Por exemplo, em um prompt de comando com privilégios elevados, execute o seguinte comando:

wmic /namespace:\\root\microsoftdfs path dfsrVolumeConfig where volumeGuid="E18D8280-2379-11E2-A5A0-806E6F6E6963" call ResumeReplication

Etapa 2: Copie o comando WMIC da etapa 2 nas etapas de recuperação da ID do evento 2213 e cole-o em um prompt de comando com privilégios elevados

Quando o comando é executado com êxito, ele retorna os seguintes resultados:

wmic /namespace:\\root\microsoftdfs pathdfsrVolumeConfig where volumeGuid="F1CF316E-6A40-11E2-A826-00155D41C919" call ResumeReplication

Executing(file://ww2008r2dc1/root/microsoftdfs:DfsrVolumeConfig.VolumeGuid=%22F1CF316E-6A40-11E2-A826-00155D41C919%22)-%3EResumeReplication()">\WW2008R2DC1\root\microsoftdfs:DfsrVolumeConfig.VolumeGuid="F1CF316E-6A40-11E2-A826-00155D41C919")->ResumeReplication()
Execução do método bem-sucedida. parâmetros de saída:instância de __PARAMETERS{ returnValue = 0;};

Para usuários do PowerShell, você precisa adicionar aspas simples ao comando WMIC para executá-lo no PowerShell, da seguinte maneira:

wmic /namespace:\\root\microsoftdfs pathdfsrVolumeConfig where 'volumeGuid="F1CF316E-6A40-11E2-A826-00155D41C919"' call ResumeReplication

Etapa 3: verificar se as IDs de evento 2212 e 2214 foram registradas

Verifique se as IDs de evento 2212 e 2214 foram registradas no servidor no qual você executou o comando resume replication. Observação adicional sobre recuperação Se você precisar reinicializar uma pasta replicada (ou executar a sincronização inicial) após um desligamento sujo, siga estas etapas:

  1. Desative a pasta replicada.
  2. Habilite a replicação usando as etapas nas etapas de recuperação anteriores para a seção ID do Evento 2213 registrada na seção do servidor DFSR.
  3. Habilite a pasta replicada.

Se você desativar e ativar a pasta replicada antes de executar o comando WMIC, a sincronização inicial não ocorrerá porque o gerenciador de volumes está offline.

Etapas para reduzir as chances de um desligamento sujo

No Windows, um serviço tem 30 segundos para ser desligado depois de receber uma notificação de desligamento. Após 30 segundos, o Gerenciador de Controle de Serviço força o desligamento do serviço. No que diz respeito ao serviço DFSR, um servidor de hub ocupado pode precisar de mais de 30 segundos para confirmar alterações pendentes no banco de dados. Se o serviço DFSR não confirmar todas as alterações nos 30 segundos alocados pelo Gerenciador de Controle de Serviços, o serviço será fechado à força e isso disparará uma recuperação de desligamento sujo.

Quedas de energia ou qualquer outra reinicialização forçada de um servidor DFSR também podem disparar uma recuperação de desligamento sujo. Para reduzir as chances de um desligamento sujo, certifique-se de que seus servidores DFSR estejam conectados a uma fonte de alimentação ininterrupta (UPS) para permitir que eles se desliguem normalmente.

Estenda os tempos de desligamento do serviço

Em servidores DFSR que exigem mais de 30 segundos para serem desligados, você pode usar o valor WaitToKillServiceTimeout para estender o período de tempo permitido para que todos os serviços sejam desligados.

Um servidor DSFR que precisa de mais tempo para desligar normalmente registra os eventos 2212 e 2214 na maioria das reinicializações ou reinicializações do servidor do serviço. Ou, se a Recuperação Automática de um desligamento sujo estiver habilitada, o evento 2213 será registrado em cada reinicialização do servidor ou reinicialização do serviço DFSR.

  • Caminho: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control
  • Valor: WaitToKillServiceTimeout
  • Tipo: String
  • Dados: 300000

Esse valor é em milissegundos. Este exemplo exibe cinco minutos de tempo de desligamento. O valor pode ser aumentado ou diminuído conforme necessário. Esse valor afeta todos os serviços, não apenas o DFSR. Recomendamos que você defina esse valor como o valor mais baixo que ainda dá ao DFSR tempo suficiente para desligar corretamente. Use o processo a seguir para determinar por quanto tempo o serviço DFSR precisa ser desligado:

  1. Adicione o valor do Registro WaitToKillServiceTimeout com uma configuração de 300000 milissegundos (5 minutos). Reinicie o servidor para habilitar a configuração.

    Importante

    Consulte a observação sobre como instalar o 2549760 na seção Observações sobre WaitToKillServiceTimeOut a seguir.)

  2. Monitore as próximas reinicializações do servidor para os eventos DFSR 1006 (DFSR está parando) e 1008 (DFSR parado). Observe o tempo decorrido entre os eventos 1006 e 1008.

  3. Ajuste o tempo permitido para desligamento revisando o valor WaitToKillServiceTimeout para que ele reflita mais de perto o tempo real que o DSFR precisa para desligar corretamente.

Observações sobre WaitToKillServiceTimeOut

  • Reiniciar o servidor ou reiniciar o DFSR várias vezes seguidas não fornecerá uma amostra adequada do tempo que o DFSR precisa desligar. Você deve permitir que o tempo de serviço seja executado por um tempo para acumular transações de banco de dados pendentes.

  • A configuração WaitToKillServiceTimeout tem o valor máximo de uma hora. Se a configuração exceder uma hora, o SCM será revertido para a configuração padrão de 30 segundos para desligamento do serviço.

  • Para garantir que o SCM funcione corretamente no que diz respeito à configuração WaitToKillServiceTimeout, verifique se o 2549760 de hotfix está instalado no Windows Server 2008 R2.