В процессе работы с базами данных 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: Естественно, экспериментировать с БД и обрезать логи необходимо после полного бэкапа БД заранее.