Назад | Перейти на главную страницу

SQL Server: файл журнала растет все больше и больше и не объединяется с файлом MDF

Мои файлы базы данных выглядят очень подозрительно. мы используем БД на стадии производства. и я вижу, как файл LDF все больше и больше растет. в то время как файл MDF кажется, что он вообще не растет (у меня нет истории размеров файла, чтобы продемонстрировать это, но я думаю, что он этого не делает !! Бьюсь об заклад!)

Итак, я предполагаю, что могло случиться? Как я мог заставить слияние с MDF?

Вы делаете периодические резервные копии журналов? Как каждые 30 минут? Либо начните делать резервную копию журнала, либо измените модель восстановления на простую.

Вы всегда можете увидеть реаосн, в котором хранится повторное использование журнала, в sys.databases , столбец log_reuse_wait_desc:

Описание повторного использования пространства журнала транзакций в настоящее время ожидает одного из следующих событий:

  • НИЧЕГО
  • ПРОПУСКНОЙ ПУНКТ
  • LOG_BACKUP
  • ACTIVE_BACKUP_OR_RESTORE
  • ACTIVE_TRANSACTION
  • DATABASE_MIRRORING
  • РЕПЛИКАЦИЯ
  • DATABASE_SNAPSHOT_CREATION
  • LOG_SCAN
  • OTHER_TRANSIENT

Для получения дополнительной информации см. Факторы, которые могут задержать усечение журнала.

LDF отслеживает все транзакции, выполняемые с файлом MDB, а не только фактические данные. В результате файл журнала будет продолжать увеличиваться, даже если вы не вставляете новые данные (также регистрируются операторы обновления и удаления), пока вы не выполните полное резервное копирование соответствующей базы данных. После выполнения полного резервного копирования SQL не нужно хранить все эти неактивные транзакции до момента резервного копирования, поскольку вы можете просто восстановить данные из резервной копии. Тогда вы сможете уменьшить файл до нужного размера. Регулярное резервное копирование избавит вас от необходимости делать этот последний шаг.

Вот некоторые Статьи MS KB чтобы рассказать вам о некоторых точных шагах, которые вы можете предпринять.

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

Проблемы с файлом журнала SQL

Чтобы ответить на вашу первую проблему:

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

Что касается файла журнала:

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

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