Eu tenho um banco de dados SQL Server onde o arquivo de log é enorme e continua crescendo a cada dia.
Arquivei os dados do banco de dados e fiz um backup completo. Eu esperava que o log estivesse basicamente "vazio". Por exemplo, pode ter o mesmo tamanho físico, mas agora tem muito espaço livre. No entanto, atualmente tem apenas 0,1% de graça.
Alguma idéia de por que ainda quase não há espaço livre no log?
O crescimento dos arquivos de log depende do modelo de recuperação de um banco de dados e dos backups de log de transações. se o banco de dados não for crítico e a perda de dados não for um problema em nenhum caso, ele deve estar no modo de recuperação SIMPLES. O que permite que o SQL Server reutilize o espaço de log quando uma transação é confirmada e o crescimento do log permanece dentro dos limites. Mas se o banco de dados for crítico e a recuperação pontual puder ser um requisito, o banco de dados deverá estar no modo de recuperação COMPLETA. O que é uma indicação para o SQL Server que mantém todo o log no arquivo de log de transação e não o reutiliza, até que seja feito backup (backup do log de transação).
Se arquivar significa que você removeu alguns dados depois de buscar alguns dados e mantê-los em qualquer outro formato. Então, deve-se ter em mente que a exclusão de dados nunca reduz o tamanho físico dos dados ou arquivos de log, embora possa haver espaço disponível para reutilização pelo banco de dados.
Espaço livre
BACKUP DATABASE
(backup completo, backup diferencial, backup de arquivo/grupo de arquivos, somente cópia) não libera espaço em nenhum arquivo. Na verdade, ele usa um pouco de espaço no arquivo de log para registrar suas ações.BACKUP LOG
trunca o log, o que geralmente libera espaço.Um banco de dados de modelo de recuperação simples trunca seu log quando ocorre um ponto de verificação.
Tamanho do arquivo
Nenhuma das operações de backup afeta o tamanho físico dos arquivos.
Os únicos comandos que fazem isso são
DBCC SHINKFILE
eDBCC SHRINKDB
(no SSMS, clique com o botão direito do mouse em um banco de dados, escolha Tarefas, Diminuir).