O sistema de monitoramento gerou um alerta de que uma unidade em um servidor que hospeda instâncias do SQL Server está com pouco espaço. Descobriu-se que um arquivo de log de transações cresceu muito e não pode ser reduzido porque não há espaço livre disponível no arquivo. Que etapas devo seguir para determinar o que está causando o crescimento do arquivo de log?
Responder1
Se o log de transações estiver crescendo fora de controle, certifique-se de estar executando backups de log de transações que trunquem o log.
Transações abertas de longa duração podem ser a causa do crescimento dos logs de transações. Use a instrução DBCC OPENTRAN do SQL Server Management Studio (SSMS) para verificar as transações de execução mais longa na instância do SQL Server. Se houver uma transação aberta, ele oferecerá o session_id (SPID) da conexão, que possui a transação aberta. Você pode então usar esse SPID e o procedimento armazenado sp_who2 para ver a qual conexão a transação pertence. Você pode matar esse SPID.
Depois disso, você pode mudar o modelo de recuperação do banco de dados de FULL para SIMPLE e tentar reduzir o banco de dados. Você pode colocar o banco de dados de volta em FULL, mas precisa agendar a execução de backups completos e backups de log de transações ou o problema acontecerá novamente.
Outra possível causa do crescimento inesperado do log de transações é garantir que o banco de dados não esteja participando da replicação/espelhamento e que a comunicação entre esse banco de dados e o outro seja perdida. Se, por algum motivo, o link entre os dois bancos de dados for afetado, o log de transações continuará a crescer no banco de dados principal até receber confirmação do banco de dados espelhado. Como resultado, o log de transações aumentará e não reutilizará o espaço.