SQL Server: как увеличить размер журнала транзакций?

Как увеличить размер журнала транзакций? Также возможно временно увеличить журнал транзакций?

Допустим, у меня есть следующий сценарий. У меня есть операция удаления, которая слишком велика для текущего журнала транзакций. Я хочу:

  • Увеличьте журнал транзакций (могу ли я определить текущий размер? Могу ли я сказать, насколько большим должен быть журнал транзакций для моей операции?)
  • (Выполнить мою операцию)
  • Сделайте резервную копию журнала транзакций
  • Восстановите размер журнала транзакций.

person Niels Bosma    schedule 18.06.2009    source источник


Ответы (3)


Короткий ответ:

Длинный ответ: вы можете использовать ALTER DATABASE ... MODIFY FILE для изменения размера файлов базы данных, включая файлы LOG. Вы можете найти master_files/sysfiles (2k) или <dbname>.sys.database_files (2k5/2k8), чтобы получить логическое имя журнала. И вы можете использовать DBCC SHRINKFILE для сжатия файла (если это возможно).

могу ли я сказать, насколько большим должен быть журнал транзакций для моей операции?

Это зависит от многих факторов (это новые данные? это обновление? это удаление? какая модель восстановления? есть ли у вас сжатие на SQL 2k8? и т. д. и т. д.), но обычно больше, чем вы ожидаете. Я бы оценил в 2,5 раза больше размера обновления, которое вы собираетесь выполнить.

Обновлять:

Пропущенный вы говорите, это УДАЛИТЬ. Приблизительная оценка в 1,5 раза превышает размер удаленных данных (включая все индексы).

person Remus Rusanu    schedule 18.06.2009

Журнал транзакций можно настроить для расширения по мере необходимости. Вы устанавливаете опцию автоматического роста. Однако, когда журнал транзакций становится слишком большим (недостаточно места на диске) или делает сервер sql непригодным для использования.

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

При восстановлении журнал транзакций будет уменьшен

Чтобы настроить автоматическое увеличение:

  1. Щелкните правой кнопкой мыши базу данных в студии управления.
  2. Выберите свойства
  3. Обновить значение автоматического роста
person Stuart    schedule 18.06.2009

Самая важная часть — это последняя строка вашего сценария: «Восстановить размер журнала транзакций». Вы имеете в виду сжать журнал до исходного размера.

Это действительно опасно по многим причинам, и мы рассмотрели их в нескольких статьях на SQLServerPedia:

person Brent Ozar    schedule 18.06.2009