Вы здесь
Уменьшение размера лог-файла в MsSQL
пт, 22.06.2012 - 08:38 - krak
Обязательным условием для выполнения данной операции - возможность создания backup'ирование базы. Если база в "нерабочем состоянии", то сделать подрезку будет невозможно.
Итак по шагам:
- Создать maintenance plan
- Создаем задачу Execute T-SQL Statement Task
- Прописываем следующий код
use database_name
go
backup log database_name with truncate_only
go
dbcc shrinkfile(database_log_name, 1024) -- size in megabytes
go - Настраиваем расписание.
Также этот код можно выполнить отдельно, запустив в консоли.
Имя логфайла можно узнать в свойствах базы в разделе Файлы
Microsoft SQL 2008
Если модель Simple
USE <Имя БД>
DBCC SHRINKFILE (<Логическое Имя Файла Лога>, <Размер>);
GO
DBCC SHRINKFILE (<Логическое Имя Файла Лога>, <Размер>);
GO
Если модель Full
USE <Имя БД>
ALTER DATABASE <Имя БД> SET RECOVERY SIMPLE
DBCC SHRINKFILE (<ЛогическоеИмяФайлаЛога>, <Размер>);
GO
ALTER DATABASE <Имя БД> SET RECOVERY FULL
GO
ALTER DATABASE <Имя БД> SET RECOVERY SIMPLE
DBCC SHRINKFILE (<ЛогическоеИмяФайлаЛога>, <Размер>);
GO
ALTER DATABASE <Имя БД> SET RECOVERY FULL
GO
Как альтернативу можно попробовать (сам не пробовал):
USE <Имя БД>
Backup Log to disk = ‘Nul’
GO
DBCC SHRINKFILE (<ЛогическоеИмяФайлаЛога>, <Размер>);
GO
Backup Log to disk = ‘Nul’
GO
DBCC SHRINKFILE (<ЛогическоеИмяФайлаЛога>, <Размер>);
GO