Eu tenho um banco de dados com um tamanho de arquivo de dados de 674 MB e um log de transações de 6,1 GB. O log de transações é cerca de 10 vezes maior que o arquivo de dados.
As configurações do log de transações podem ser vistas na imagem abaixo.
O servidor está constantemente ficando sem espaço e esse log de transações ocupa cerca de 11% do espaço total em disco. Eu gostaria de tornar este arquivo de log de transação menor.
Posso simplesmente alterar o "Tamanho máximo do arquivo" alternando para Restringir o crescimento do arquivo [MB]: e definir o tamanho para 80 MB?
Prefiro restringir a irrestrito.
Se algum processo der errado, não quero que o arquivo de log cresça e cresça e encha o disco. Prefiro que o banco de dados pare de funcionar do que toda a instância do servidor/SQL Server.
No entanto, neste caso, você tem um problema diferente: provavelmente recuperação "COMPLETA" e nenhum backup de log. Mude para simples, reduza o log para, digamos, 500 MB, permita o crescimento em 250 MB, defina um máximo de 2 GB.
Não é aconselhável restringir o crescimento do arquivo de log de transações, pois isso interferirá na capacidade do banco de dados de registrar transações.
Se esta for uma caixa de não produção, ou você nunca planeja fazer uma recuperação pontual, você pode mudar a opção de recuperação do banco de dados para "simples". Depois de cada ponto de verificação, o log será truncado automaticamente, evitando assim o crescimento (a menos que você esteja trabalhando demais em uma transação).
Defina o banco de dados para o modo simples, trunque o log, reduza o log, defina o crescimento automático para 128 MB e você deve estar no caminho certo.
Às vezes, você não poderá reduzir o tamanho dos arquivos de log do banco de dados
property window
. Você pode receber uma mensagem de erro em torno das linhas de: 'O novo tamanho de arquivo é atualmente menor que o tamanho de arquivo atual...'. No entanto, você pode tentar os seguintes passos:ALTER DATABASE Your_DB_Name SET RECOVERY SIMPLE
.DBCC
ouSSMS
.database property
janela.ALTER DATABASE Your_DB_Name SET RECOVERY FULL
.Como expressou @gbn, também prefiro colocar o arquivo em um crescimento restrito. Se o arquivo encher a unidade e você não tiver nenhum espaço extra, talvez não seja possível reduzir o arquivo posteriormente, afetando todos os bancos de dados que possuem arquivos de dados/log na mesma unidade.