Welcome to MSDN Blogs Sign in | Join | Help

Гайдар Магдануров

Платформа и инструменты разработки, новости компании Microsoft и мысли об ИТ
Уменьшение размера 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

Думаю теперь, что делать с освободившимися несколькими десятками Гб :)

Posted: Friday, April 10, 2009 11:40 PM by gaidar
Filed under: ,

Comments

kosinsky said:

Глупый вопрос. А почему не держать такие базы в SIMPLE режиме?

# April 10, 2009 6:30 AM

gaidar said:

Во время активной работы с базами очень хочется иметь возможность откатиться до предыдущего состояния - все просто.

# April 10, 2009 6:37 AM

Mam0Nt said:

Спасибо за уточнения метода для SQL2008.

И все же, выполнение скрипта - это ручная работа (если конечно его не зашедулить). Но предусмотрено более удобное средство: если хотите забыть про мониторинг за размером лога и периодическое его обрезание - помогут Maintenance plan-ы (настравивается за 2 минуты):

- в план последовательно добавляются операции Shrink и Backup;

- он настраивается на периодическое исполнение (можно даже уведомления по почте сделать при желании);

- можно указать в качестве target ВСЕ базы данных на сервере - удобство в том, что при добавлении новой она автоматически добавляется в Maintenance plan;

# April 10, 2009 12:49 PM

igor01 said:

по отношению к субд я предерживаюсь более консервативного мнения: лишний раз не трогать ,использовать 2005 SQL с sp

# April 10, 2009 2:08 PM

Ilgiz Mamyshev said:

Просто уточняю - Чтобы иметь возможность откатиться до предыдущего состояния вы делаете после этой процедуры полный бэкап базы?

# April 12, 2009 1:01 PM

gaidar said:

В этой задаче так - мне нужно держать базу в состоянии поддерживающем откат в течение какого-то длительного времени, но наступает момент, когда мне все больше не интересны возможности отката, поэтому я делаю shrink, после этого backup и архивацию.

# April 12, 2009 3:01 PM
New Comments to this post are disabled
Page view tracker