Aguarde um momento de silêncio e faça um backup do log de transações e, em seguida, faça o encolhimento imediatamente.
Eu tenho um arquivo de log que cresceu para 32gig e preencheu meu disco rígido. Então eu fiz um backup de log de transação, e agora quando eu faço "DBCC SQLPERF (LOGSPACE)", diz que 99% do meu arquivo de log é o espaço vazio, que é ótimo:
DBCC SQLPERF ( LOGSPACE )
Database Name Log Size (MB) Log Space Used (%) Status
abc 32140.02 0.3069714 0
Agora eu quero encolher o arquivo (deve ser apenas um par de megas !!!), então eu faço:
DBCC SHRINKFILE ( abc_log )
Nos resultados da consulta no SSMS, recebo o seguinte:
Results tab:
DbId FileId CurrentSize MinimumSize UsedPages EstimatedPages
14 2 4113923 128 4113920 128
E na guia "Mensagens", esta pequena informação:
Cannot shrink log file 2 (abc_log) because all logical log files are in use.
(1 row(s) affected)
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
O que está acontecendo?
Aguarde um momento de silêncio e faça um backup do log de transações e, em seguida, faça o encolhimento imediatamente.
Você não mencionou sua versão do SQL Server. De acordo com "SQL Server Intenals" , "(em 7.0) ... Encolhimento físico pode ocorrer somente a partir do final do log, e a parte ativa nunca é encolhível. Para remediar esta situação, você tinha que inserir algumas transações fictícias depois de truncar o log para forçar a parte ativa do log a se mover para o início do arquivo ". A versão posterior deve fazer isso por você.
O encolhimento após meia hora pode ser apenas o auto-encolhimento (você acabou de ligar essa opção?). Isso acontece a cada 30 minutos.
Sou um mau administrador de SQL e, normalmente, apenas mudo o banco de dados para o modelo de recuperação simples, reduzi-lo e alterá-lo de volta para Completo. Eu acho que isso não funcionaria em uma situação onde você está confiando em Full para o espelhamento.
Isso é estranho, mas talvez houvesse alguma operação de DB acontecendo na época, mesmo que não houvesse "transação" ativa? Eu não sei bem o servidor SQL. Eu duvido que tenha algo a ver com o espaço livre, de qualquer forma.
Você pode ter mais sorte com perguntas como esta no serverfault.com do que no SU.
Eu tenho um procedimento no meu site que faz exatamente isso.
Sempre que eu precisar.
Tags sql-server