Как мне уменьшить размер моего файла журнала сервера sql? - PullRequest
25 голосов
/ 06 мая 2009

Так что я пренебрегал созданием резервных копий моей базы данных fogbugz, и теперь файл fogbugz ldf превышает 2 с половиной гигабайта. Это было создано за шесть месяцев, которые мы использовали fogbugz.

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

Есть ли способ решить проблему? Или единственный способ вернуться к этому моменту - отсоединить базу данных, удалить файл журнала, а затем снова присоединить новый?

Ответы [ 4 ]

28 голосов
/ 09 января 2015
  • Выполните полное резервное копирование вашей базы данных. Не пропустите это. На самом деле.
  • Измените метод резервного копирования вашей базы данных на «Простой»
  • Откройте окно запроса, введите «контрольную точку» и выполните
  • Выполнить еще одну резервную копию базы данных
  • Измените метод резервного копирования вашей базы данных обратно на «Полный» (или каким бы он ни был, если он еще не был простым)
  • Выполнить окончательное полное резервное копирование базы данных.
  • Запускать запросы ниже по одному
    1. USE Database_Name
    2. select name,recovery_model_desc from sys.databases
    3. ALTER DATABASE Database_Name SET RECOVERY simple
    4. DBCC SHRINKFILE (Database_Name_log , 1)
28 голосов
/ 06 мая 2009

Добро пожаловать в непостоянный мир управления журналами SQL Server.

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

Тем временем это должно как минимум позволить вам убить файл журнала:

  1. Выполните полное резервное копирование вашей базы данных. Не пропустите это. На самом деле.
  2. Измените метод резервного копирования вашей базы данных на «Простой»
  3. Откройте окно запроса, введите «контрольную точку» и выполните
  4. Выполнить еще одну резервную копию базы данных
  5. Измените метод резервного копирования вашей базы данных обратно на «Полный» (или каким бы он ни был, если он еще не был простым)
  6. Выполнить окончательное полное резервное копирование базы данных.

Теперь вы сможете сжать файлы (если резервное копирование не сделало этого за вас).

Удачи!

3 голосов
/ 06 мая 2009

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

отсоединение БД и удаление файла журнала опасно! не делайте этого, если вы не хотите потерять данные

3 голосов
/ 06 мая 2009
  1. Убедитесь, что режим резервного копирования базы данных установлен на Простой (см. здесь для обзора различных режимов). Это позволит избежать SQL Server ожидания резервного копирования журнала транзакций, прежде чем повторно использовать пространство.

  2. Используйте dbcc shrinkfile или Management Studio для сжатия файлов журнала.

Шаг # 2 ничего не будет делать, пока не будет установлен режим резервного копирования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...