A cada mês, fazemos um instantâneo do final do mês de nosso banco de dados de produção. Esses instantâneos de final de mês são estritamente para fins de relatório, não há inserções, atualizações ou exclusões feitas neles. Cada um desses instantâneos tem um arquivo .MDF
e .LDF
.
Quero excluir os .LDF
arquivos e liberar espaço no servidor. Há algum motivo para eu manter os .LDF
arquivos?
Esclarecimento:
Nosso banco de dados de produção é recriado todas as noites a partir de extratos de arquivos de outro sistema. Nós apenas reportamos do banco de dados de produção... nenhuma atualização é feita.
Processo noturno:
Pelo que posso dizer...
Todas as noites as tabelas do banco de dados são truncadas
As tabelas são preenchidas por meio de uma série de instruções de inserção em massa
Os índices são reconstruídos
Você não deve excluir o arquivo de log. Se você estiver tentando reanexar um arquivo de dados sem o log, o SQL Server pode recriá-lo tecnicamente, mas há alguns problemas em potencial, como se houvesse transações abertas quando o banco de dados foi desanexado. Nesse caso, você teria perda total de dados.
Consuma o espaço e não exclua seus arquivos de log . Você está procurando problemas com isso.
Consulte este artigo sobre logs de transações , em particular a parte "gerenciamento incorreto de logs".
Conforme mencionado em outra resposta , você não pode excluir o arquivo de log. O que você pode fazer é definir o banco de dados como
READ_ONLY
. Com o banco de dados emREAD_ONLY
, nenhuma modificação é permitida e o arquivo de log não crescerá. Você pode reduzir o tamanho do arquivo de log para um tamanho mínimo e atingir seu objetivo de uma pegada mínima. Para configurar o banco de dados,READ_ONLY
execute o seguinte comando:Você pode alterar o banco de dados de volta para
READ_WRITE
, fazer as alterações necessárias e configurá-lo aREAD_ONLY
qualquer momento que precisar.O arquivo de log ainda é necessário para manter as propriedades ACID do banco de dados.
O fato é que você pode criar um banco de dados apenas usando o arquivo mdf. É o comando sp_attach_single_file_db (Transact-SQL). Observe que ele será removido em uma versão futura do Microsoft SQL Server. Mas não é inteligente excluir seus arquivos LDF. Shark está certo 'Você está procurando problemas com isso.' Outro ponto de vista - seus arquivos ldf são enormes? Se forem, você pode fazer algo sobre eles.
Aqui está a solução que encontrei para reduzir os arquivos LDF.
Isso recria um arquivo LDF com tamanho de 504 K.
Isso recuperou uma quantidade significativa de espaço em disco no servidor. Funciona para nós porque todos esses bancos de dados são APENAS bancos de dados de relatórios estáticos. Nenhuma inserção, atualização ou exclusão será executada nesses bancos de dados.
ATUALIZAÇÃO 2019-09-24: Sim, concordo que é uma péssima ideia. Parei de fazer isso quase imediatamente. Reconstruí todos os índices usando um fator de preenchimento de 100. Reduzi apenas os arquivos .ldf. E mudou todos os bancos de dados para serem READ ONLY.