2013-07-25 4 views
3

Я занимаюсь чьим-то резервным планом обслуживания и имею проблему с файлом журнала, у меня есть база данных, которая находится на одном диске размером 31 ГБ и файл журнала, который сидит на другом сервере размером 20 ГБ, база данных находится в модели полного восстановления. Существует план обслуживания, который выполняется один раз в день, чтобы выполнить полную резервную копию, и второй план, который выполняет резервное копирование файла журнала каждые 15 минут. Я проверил и накопитель, на который был скопирован файл журнала, и все еще остается много места, но после резервного копирования файл журнала никогда не становится меньше, есть ли что-то в плане обслуживания?Файл журнала SQL не сжимается в SQL Server 2012

Заранее спасибо

ответ

7

Ситуация, как вы описали, кажется прекрасной.

Резерв журнала транзакций делает не сжимает файл журнала. Тем не менее, он делает TRUNCATE журнала, файл, который означает, что пространство может быть повторно использован:

из Books Online (Transaction Log Truncation):

Log усечения автоматически высвобождает пространство в логическом журнале для повторного использования по журнал транзакций.

Кроме того, из Managing the Transaction Log:

усечение журнала, который автоматически по простой модели восстановления, является необходимо держать журнал от заполнения. Процесс усечения уменьшает размер файла логического журнала, помещая как неактивные файлы журнала , которые не содержат никакой логической записи.

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

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

Это означает, что если вы начнете сокращать журнал, SQL Server просто нужно будет снова его вырастить ... Это интенсивная работа с ресурсами, влияющая на производительность сервера, и никакие транзакции не могут завершиться, пока журнал растет.

Текущий план и размеры файлов кажутся мне разумными.

+0

Привет, Ян, еще раз спасибо за очень подробный ответ, который очень ценится. Причина, по которой я задавался вопросом о размере, мне сказали, что файл журнала ранее был всего лишь несколькими 100 МБ, которые в то время не звучали корректно пропорционально размеру базы данных. Может ли размер увеличаться так же, как и его прежний размер, потому что теперь он является частью транзакционной репликации? – PJD

+0

Поскольку транзакционная репликация полагается на журнал транзакций, данные не могут быть усечены в журнале до завершения репликации, и это больше не требуется. Таким образом, в этом смысле это будет иметь эффект, хотя, очевидно, трудно количественно определить вещи, основанные на некоторой общей информации! Тем не менее, я буду беспокоиться только о том, будет ли журнал продолжать расти пропорционально росту рабочей нагрузки; вот что может потребоваться для дальнейшего расследования. –

2

Я не знаю, применимо ли это к вашей ситуации, но более ранние версии SQL Server 2012 имеют ошибку, которая появляется, когда для модели задана простая модель восстановления. Для любой базы данных, созданной с установленной моделью Simple, файлы журналов будут продолжать расти, пытаясь достичь предела 2,097,152 МБ. Это по-прежнему применяется, если впоследствии вы измените значение «Полный». В статье базы данных 2830400 указано, что изменение на Full, а изменение на Simple - это обходной путь - это был не мой опыт. Запуск CU 7 для SP1 был единственным трюком, который работал для меня.

В статье приведены ссылки для первых обновлений, которые разрешили эту ошибку: «Накопительное обновление 4 для SQL Server 2012 с пакетом обновления 1», а также «Накопительное обновление 7 для SQL Server 2012» (если вы еще не установили SP1) ,

+0

Это не относится к вопросу о плакате. Он никогда не упоминает нигде, что использует простую модель восстановления. На самом деле он говорит, что использует полную модель восстановления. –

+0

Я должен был написать более описательный пост. Это применимо, если база данных была первоначально создана в простой модели восстановления и впоследствии изменена на FULL. Это неприятная ошибка. –

+0

Пожалуйста, отредактируйте ваше сообщение и добавьте соответствующую информацию. Это было бы полезно, так как это не требовало бы, чтобы каждый читал всю статью в КБ и выяснял, что уместно. –

0

Если вы полностью восстановите восстановление, а затем вернетесь к простому, усадка будет работать успешно.

+0

Неверно - вы переходите к простому, а затем снова к полному. http://technet.microsoft.com/en-us/library/ms189493.aspx – cdonner