Автоматическое сжатие файла журнала SQL Server - PullRequest
0 голосов
/ 02 февраля 2019

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

Является ли автоматическое сжатие хорошим решением?

Повлияет ли автоусадка на производительность приложения в простом режиме восстановления?Является ли порог 50 ГБ хорошим порогом?

Спасибо!

1 Ответ

0 голосов
/ 03 февраля 2019

Из вашего комментария:

Размер файла журнала снова вырос до почти 200 ГБ

Я могу предположить, что ваша база данных не является подходящим кандидатом для autoshrink(и, исходя из моей практики, это редкий случай, когда autoshrink является хорошим решением для дБ).

Рекомендации

  1. Создание начального размера файла (ов) журнала достаточно большой .Это процесс проб и ошибок, просто посмотрите, что свободное пространство существует и не слишком большоеНикогда не уменьшайте размер файлов журнала до нуля.

  2. Делайте размер приращения журнала не на основе%, а на постоянный размер.По умолчанию SQLServer имеет приращение размера на основе%.Сделайте это приращение достаточно большим .Опять же, это процесс проб и ошибок.

  3. Убедитесь, что в файловой системе (ах), в которой расположены файлы журналов, достаточно свободного места.Вам не нужны фрагментированные файлы журналов, и вы абсолютно не хотите, чтобы база данных отключалась при пиковых нагрузках.

  4. Последнее, но не менее важное.Проверьте открытые транзакции, когда ваш файл журнала неожиданно большой.Я расширю эту тему ниже.

DBCC OPENTRAN

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

Проверьте это с помощью DBCC OPENTRAN

Посмотрите внимательно.

Вы можете найти виновных - программы / клиенты, которые открывают транзакции, делают много изменений, а затем никогда не commit s / rollback s их.

Имейте в виду, что журналлинейный рост и одна «плохая» транзакция может предотвратить повторное использование пространства журнала (и сокращение тоже)

Найдите таких преступников, найдите программистов / пользователей, которые открывают такие транзакции, в качестве последней меры - kill их.

Уточнение:

Я имею в виду kill как в T-SQL kill

У меня есть сильное подозрение, чтозакрытые транзакции - ваше дело.

Сообщите о своем прогрессе.

Удачи!

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