Sql: Limpeza no HD (LogFile)
Uma boa forma de conseguir espaço no HD é fazer uma limpeza nos arquivos de log do SQL Server, isso acontece muito com os desenvolvedores que tem banco de dados de testes e ficam executando muitos comandos o tempo todo.
O arquivo de log nesses casos vai inflando e muitas vezes não é tão útil porque foram apenas testes então reduzir a quantidade de informações dele não representará grandes perdas.
Lembrando que isso pode ser aplicado à qualquer banco, não apenas de testes, mas tenha cuidado o arquivo de log tem informações importantes caso precise por exemplo executar um procedimento de manutenção ou análise de dados.
Primeiro vamos ver qual o tamanho do arquivo de log dos bancos de dados que você tem.
WITH FS
AS
(
SELECT DATABASE_ID, TYPE, SIZE * 8.0 / 1024 SIZE, physical_name
FROM SYS.MASTER_FILES
)
SELECT
NAME AS NOMEDOBANCO,
(SELECT SUM(SIZE) FROM FS WHERE TYPE = 0 AND FS.DATABASE_ID = DB.DATABASE_ID) DATAFILESIZEMB,
(SELECT SUM(SIZE) FROM FS WHERE TYPE = 1 AND FS.DATABASE_ID = DB.DATABASE_ID) LOGFILESIZEMB,
(SELECT PHYSICAL_NAME FROM FS WHERE TYPE = 1 AND FS.DATABASE_ID = DB.DATABASE_ID)
FROM SYS.DATABASES DB
Esse comando vai mostrar o nome do banco, o tamanho do banco, o tamanho do log e o local do arquivo ldf.
Compare o tamanho do banco com o tamanho do log para decidir qual banco vai querer executar o procedimento. Muitas vezes os arquivos de log ficam bem maiores que o próprio banco.
USE MEU_BANCO_DE_DADOS
ALTER DATABASE MEU_BANCO_DE_DADOS
SET RECOVERY SIMPLE;
GO
DECLARE @NOMELOG varchar(500) = (SELECT DISTINCT name FROM sys.master_files WHERE type = 1 AND name LIKE '%MEU_BANCO_DE_DADOS%')
DBCC SHRINKFILE (@NOMELOG, 100);
GO
ALTER DATABASE MEU_BANCO_DE_DADOS
SET RECOVERY FULL;
GO
Esse comando vai limpar o arquivo de log até chegar a próximo dos 100 MB por causa desse comando SHRINKFILE (@NOMELOG, 100); caso queira outro valor é só trocar de 100 para o que desejar.
Onde estiver MEU_BANCO_DE_DADOS substitua pelo banco de dados que você escolheu.
0 comentários:
Postar um comentário