Ajuda de SQL – Limpeza de Logs

Todos que administram bancos de dados um dia já teve ou está passando por este problema. Alguns bancos de dados SQL Server de repente e sem aviso crescem seu log e acabam com espaço em disco, nesta hora você se pergunta… – Por que eu não fiz um job para fazer uma limpeza diária e cuidar automaticamente desse assunto para mim ?… As vezes não pensamos nisso ou nem imaginamos como é o código, segue abaixo a dica para te ajudar, basta criar um job com este código e agendar para o horário e recorrência que melhor se adequar a você. Boa sorte…


/*
Realiza Shrink em todos os Logs, de base de dados criados por usuários.
*/
declare @logname nvarchar(128)
declare @dbname nvarchar(128)
declare @dynamic_command nvarchar(1024)
set @dynamic_command = null
declare log_cursor cursor for
select db_name(mf.database_id),name
from sys.master_files mf
where mf.database_id not in (1,2,3,4) –avoid system databases
and mf.name not like ‘ReportServer$%’
and right(mf.physical_name,4) = ‘.ldf’ and mf.state_desc=’online’
open log_cursor
fetch next from log_cursor into @dbname,@logname
while @@fetch_status = 0
begin
set @dynamic_command = ‘USE ‘+@dbname+’ DBCC SHRINKFILE(N”’+@logname+”’,10)’
exec sp_executesql @dynamic_command
fetch next from log_cursor into @dbname,@logname
set @dynamic_command = null
end
close log_cursor
deallocate log_cursor

Page Reader Press Enter to Read Page Content Out Loud Press Enter to Pause or Restart Reading Page Content Out Loud Press Enter to Stop Reading Page Content Out Loud Screen Reader Support