В SQL Server 2008 используется несколько моделей восстановления (Recovery Models) для баз данных:
- Simple - в логе минимум информации, можно восстанавливаться из полного или инкрементального бэкапа, но нельзя восстановиться в состояние на определенный момент времени;
- Full - можно восстановиться в состояние на определенный момент времени;
- Bulk-logged - в этом типе операции с большими массивами данных (Bulk) логируются в минимальном размере, в отличии от Full recovery model.
К чему перечисление моделей восстановления? К тому, что по умолчанию SQL Server ставит Recovery Model = Full, что приводит к тому что команда SHRINKDATABASE не приводит к очистке лога.
Для того, что бы очистить лог, сначала надо сменить Recovery Model:alter database db_name set recovery simpleПосмотреть какая у баз стоит Recovery model можно так:
select name,recovery_model_desc from sys.databasesДалее можно очищать лог:
DBCC SHRINKDATABASE (db_name)Есть другой способ очистить лог, если не хочется отключать Full recovery model. Нужно сделать Detach базы, удалить файл лога и снова приатачить базу, тогда создаться пустой лог-файл.
Комментариев нет :
Отправить комментарий