Как в MS SQL Server уменьшить размер логов

В процессе работы с базами данных MS SQL с полным логом транзаций через некоторое время этот лог разрастается до внушительных размеров и начинает занимать места больше, чем сама база данных. Есть несколько путей очистки этого лога.

1. Короткий и скорее нерекомендуемый путь

backup log [dbname] TO DISK='NUL'
go
DBCC SHRINKDATABASE ([dbname], 10, TRUNCATEONLY)
go

2. Более длинный, но скорее более надёжный способ (из обсуждения)

USE dbname;
GO
-- Truncate the log by changing the database recovery model to SIMPLE.
ALTER DATABASE dbname
SET RECOVERY SIMPLE;
GO
-- Shrink the truncated log file to 1 MB.
DBCC SHRINKFILE (2, 1);  -- here 2 is the file ID for trasaction log file,you can also mention the log file name (dbname_log)
GO
-- Reset the database recovery model.
ALTER DATABASE dbname
SET RECOVERY FULL;
GO

PS: Естественно, экспериментировать с БД и обрезать логи необходимо после полного бэкапа БД заранее.

Добавить комментарий

Ваш адрес email не будет опубликован.