Уменьшение размера log файла в SQL Server 2008
Некоторые базы с которыми я работаю имеют очень интересную жизненную историю и тяжелое детство в связи с чем можно наблюдать такую картинку, что размер mdf файла, чуть больше 500 Мб, а вот log файл сильно за 4 Гб. Поскольку таких баз у меня много, а места на диске, увы, уже мало.
Для SQL Server до 2008 версии я пользовался следующей процедурой:
USE ИмяБазы
BACKUP LOG ИмяБазы WITH TRUNCATE_ONLY
DBCC SHRINKFILE( ИмяФайлаЛога, ЖелаемыйРазмер )
С SQL Server 2008 этот метод не работает, поэтому следует использоват другую процедуру:
USE ИмяБазы
ALTER DATABASE ИмяБазы SET RECOVERY SIMPLE
DBCC SHRINKFILE (ИмяФайлаЛога, ЖелаемыйРазмер);
ALTER DATABASE ИмяБазы SET RECOVERY FULL
Думаю теперь, что делать с освободившимися несколькими десятками Гб :)
Comments
Anonymous
April 09, 2009
Глупый вопрос. А почему не держать такие базы в SIMPLE режиме?Anonymous
April 09, 2009
The comment has been removedAnonymous
April 10, 2009
Спасибо за уточнения метода для SQL2008. И все же, выполнение скрипта - это ручная работа (если конечно его не зашедулить). Но предусмотрено более удобное средство: если хотите забыть про мониторинг за размером лога и периодическое его обрезание - помогут Maintenance plan-ы (настравивается за 2 минуты):
- в план последовательно добавляются операции Shrink и Backup;
- он настраивается на периодическое исполнение (можно даже уведомления по почте сделать при желании);
- можно указать в качестве target ВСЕ базы данных на сервере - удобство в том, что при добавлении новой она автоматически добавляется в Maintenance plan;
Anonymous
April 10, 2009
по отношению к субд я предерживаюсь более консервативного мнения: лишний раз не трогать ,использовать 2005 SQL с spAnonymous
April 12, 2009
The comment has been removedAnonymous
April 12, 2009
В этой задаче так - мне нужно держать базу в состоянии поддерживающем откат в течение какого-то длительного времени, но наступает момент, когда мне все больше не интересны возможности отката, поэтому я делаю shrink, после этого backup и архивацию.