Управление размером файла журнала транзакций

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

В этом разделе:

  • Мониторинг используемого пространства журнала

  • Сжатие файла журнала

  • Добавление или увеличение размера файла журнала

  • Оптимизация размера журнала транзакций базы данных tempdb

  • Управление ростом файла журнала транзакций

Мониторинг используемого пространства журнала

Контролировать используемое пространство журнала можно с помощью процедуры DBCC SQLPERF (LOGSPACE). Она возвращает сведения об объеме пространства, используемого журналом в данный момент, и указывает, если необходимо провести усечение журнала транзакций. Дополнительные сведения см. в разделе DBCC SQLPERF (Transact-SQL). Для получения сведений о текущем размере файла журнала, его максимальном размере и параметре автоматического увеличения файла вы можете также использовать столбцы size, max_size и growth для данного файла журнала в представлении sys.database_files. Дополнительные сведения см. в разделе sys.database_files (Transact-SQL).

Важное примечаниеВажно!

Рекомендуется избегать переполнения диска, содержащего журналы.

[В начало]

Сжатие файла журнала

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

ПримечаниеПримечание

Такие факторы, как долго выполняемые транзакции, удерживающие файлы журналов в активном состоянии в течение продолжительного периода времени, могут ограничить или вовсе не допустить возможность сжатия журнала. Дополнительные сведения о факторах, из-за которых усечение журнала может откладываться, см. в разделе Журнал транзакций (SQL Server).

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

Сжатие файла журнала (без сжатия файлов базы данных)

Мониторинг событий сжатия файла журнала

To monitor log space

ПримечаниеПримечание

Можно задать автоматическое выполнение сжатия файлов базы данных и журнала. Однако автоматическое сжатие не рекомендуется, поэтому свойство autoshrink базы данных по умолчанию имеет значение FALSE. Если свойство autoshrink имеет значение TRUE, то автоматическое сжатие уменьшит размер файла только в том случае, если неиспользуемое пространство занимает более 25 % от общего объема. Файл будет сжат либо до размера, в котором 25 % пространства не используется, либо до исходного размера, каким бы большим он ни был. Дополнительные сведения об установке свойства autoshrink см. в разделе Просмотр или изменение свойств базы данных при использовании свойства Auto Shrink на странице Параметры или в разделе Параметры ALTER DATABASE SET (Transact-SQL) при использовании параметра AUTO_SHRINK.

[В начало]

Добавление или увеличение размера файла журнала

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

  • Файл журнала добавляется в базу данных с помощью предложения ADD LOG FILE инструкции ALTER DATABASE. Это позволяет увеличить размер файла.

  • Файл журнала можно увеличить с помощью предложения MODIFY FILE инструкции ALTER DATABASE. При этом следует указать синтаксис SIZE и MAXSIZE. Дополнительные сведения см. в разделе ALTER DATABASE (Transact-SQL).

[В начало]

Оптимизация размера журнала транзакций tempdb

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

[В начало]

Управление ростом файла журнала транзакций

Для управления размером файла журнала транзакций вы можете использовать инструкцию ALTER DATABASE (Transact-SQL). Следует отметить следующее:

  • Чтобы изменить текущий размер файла в КБ, МБ, ГБ и ТБ, используйте параметр «SIZE».

  • Чтобы изменить шаг приращения размера, используйте параметр FILEGROWTH. Значение 0 указывает, что автоматическое приращение выключено и дополнительное пространство для файла не разрешено. Небольшое значение параметра автоувеличения прироста размера файла журнала может снизить производительность системы. Во избежание слишком частых увеличений размера файла журнала следует задать достаточно большое значение шагу роста файла журнала. Как правило, достаточно установить значение увеличения шага роста равным 10 %.

    Сведения об изменении параметра прироста для файлов журнала см. в разделе ALTER DATABASE (Transact-SQL).

  • Чтобы установить максимальный размер файла журнала в КБ, МБ, ГБ и ТБ или задать неограниченный размер, используйте параметр MAXSIZE.

[В начало]

См. также

Справочник

BACKUP (Transact-SQL)

Основные понятия

Устранение неполадок при переполнении журнала транзакций (ошибка SLQ Server 9002)