Temos um ambiente de replicação de mesclagem que está empurrando para 8 assinantes. Isso está funcionando bem. Nosso banco de dados de distribuição é configurado no modo de recuperação simples. Temos um plano de manutenção que fará backup de todo o banco de dados todos os dias às 00:30. Quando esse processo é concluído, o arquivo de log de distribuição cresce nos próximos 30 minutos e absorve todo o espaço restante no disco rígido (cerca de 90 GB)
O que acontece então é que o banco de dados de distribuição aparece como "Recuperação pendente" e não podemos fazer nada até reiniciar a máquina. Depois disso, posso reduzir o arquivo de log para 2 MB.
Eu não tenho idéia do por que isso está acontecendo. O arquivo de log está sendo executado em cerca de 10 MB durante o dia. O tamanho do banco de dados está em 15 GB.
fonte
sys.databases.log_reuse_wait_desc
valor durante esses 30 minutos enquanto o log cresce?Respostas:
Parece que você tem um alto volume de transações acontecendo com sua replicação. Nesse caso, esse trabalho de "limpeza: distribuição" provavelmente deve estar em execução com muito mais frequência. Parece-me que está acontecendo uma vez por dia. No meu servidor de replicação de transações altas, eu o executo a cada 15 minutos para manter apenas as últimas 36 horas. Dessa forma, ele se comporta e não se atola.
Aqui está um artigo que pode ajudar - http://www.sqlservergeeks.com/blogs/singhsatnam84/sql-server-bi/563/sql-server-controlling-growth-of-a-distribution-database
fonte
Crie um novo instantâneo da replicação e inicie o agente do instantâneo novamente.
fonte