2009-05-05 4 views
54

Что такое LDF-файл в SQL Server? в чем его цель?Что такое LDF-файл в SQL Server?

Могу ли я безопасно удалить его? или уменьшить его размер, потому что иногда он в 10 раз больше, чем файл базы данных mdf.

ответ

3

ldf сохраняет журнал db, конечно, не сохраняет реальные данные, но очень важен для правильной работы базы данных.

Вы можете изменить модель журнала на базу данных на простое, чтобы этот журнал не становился слишком быстрым.

Проверьте, например, this.

Отметьте here для справки.

+2

Если вы не делаете резервные копии отдельных данных и журналов транзакций, файл журнала будет расти неограниченно, если вы не установите резервные копии в простой режим. Затем вы можете восстановить дисковое пространство, сократив файл журнала. – Richard

8

LDF - это журнал транзакций. Он ведет запись обо всем, что делается для базы данных для отката.

Вы не хотите удалять, но можете сжать его с помощью команды dbcc shrinkfile. Вы также можете щелкнуть правой кнопкой мыши по базе данных в SQL Server Management Studio и перейти в «Задачи»> «Сжатие».

1

Подставка LDF для «файла базы данных журнала», и это журнал транзакций. Он ведет запись всего, что делается для базы данных для отката, вы можете восстановить базу данных, даже потеряв файл .msf, поскольку она содержит всю информацию управления и информацию о транзакции.

+7

Что нового в этом ответе, которого нет в других? – RichardTheKiwi

38

LDF содержит журнал транзакций. Если вы настроите резервные копии правильно - они будут небольшими. Он растет - у вас очень распространенная проблема настройки режима восстановления базы данных FULL, а затем забудьте сделать резервную копию журнала транзакций (файл LDF). Позвольте мне объяснить, как это исправить.

  1. Если ваш бизнес может позволить себе потерять немного данных между резервными копиями, просто установите режим восстановления базы данных на SIMPLE, а затем забудьте о LDF - он будет небольшим. Это рекомендуемое решение для большинства случаев.
  2. Если вы должны иметь возможность восстановить точную точку во времени - используйте режим FULL восстановления. В этом случае вам необходимо выполнить регулярные резервные копии журнала транзакций. Самый простой способ сделать это - использовать такой инструмент, как SqlBackupAndFTP (раскрытие - я разработчик). В это время файл журнала будет усечен и не будет превышать определенные пределы.

Некоторые предложили бы использовать SHRINKFILE для обрезки журнала. Обратите внимание, что это нормально только в качестве исключения. Если вы делаете это регулярно, это побеждает цель модели FULL recovery: сначала вы входите в проблему сохранения каждого изменения в журнале, а затем просто сбрасываете его. Вместо этого установите режим восстановления на SIMPLE.

+0

Инструмент 'SqlBackupAndFTP' выглядит хорошо. Спасибо Ross –

+0

Просто любопытно: во время резервного копирования, что произойдет, если транзакция будет выполнена? Один процесс занимает резервное копирование файла, а другой процесс занят записью в файл? –

+0

Я никогда не слышал о том, что это проблема. Я не могу найти ссылки на то, как конкретно это реализовано. – Ross