Поделиться через


Файл журнала транзакций растет для баз данных с помощью OLTP в памяти в SQL Server 2022

Симптомы

Если в базах данных включена функция OLTP в памяти в SQL Server 2022, вы заметите, что файл журнала транзакций постоянно растет. Кроме того, в журнале ошибок SQL Server могут быть такие Close thread is falling behind: 4 checkpoints outstandingсообщения.

При перезапуске экземпляра SQL Server может потребоваться много времени для завершения процесса восстановления базы данных.

Устранение неполадок с sys.database и sys.dm_db_xtp_checkpoint_stats

  • При использовании представления sys.database для сбора сведений и устранения этой проблемы столбец log_reuse_wait_desc отображается XTP_CHECKPOINT в качестве причины длительного усечения. Это значение указывает, что журнал транзакций ожидает выполнения контрольной точки OLTP (ранее известной как Hekaton). В нем предполагается задержка операций контрольной точки, что может повлиять на производительность или рост файлов журнала.

  • При использовании динамического представления управления SQL Server (DMV) sys.dm_db_xtp_checkpoint_stats для сбора сведений и устранения этой проблемы столбец outstanding_checkpoint_count отображает ненулевое значение в течение длительного периода времени. Он указывает, что контрольные точки не происходят эффективно, потенциально влияя на производительность и рост файлов журнала.

Причина

В SQL Server 2022 появились новые возможности, которые улучшают управление памятью на больших серверах памяти, чтобы снизить состояние нехватки памяти. Известная проблема в этом изменении иногда может привести к поведению, описанному в разделе "Симптомы ".

Решение

Чтобы устранить проблему, выполните следующие действия.

  1. Добавьте -T9810 в качестве параметра запуска для экземпляра SQL Server.
  2. Перезапустите экземпляр.
  3. Создайте контрольную точку, создайте резервную копию журнала, просмотрите log_reuse_wait_descи сократите журнал при необходимости, чтобы освободить место.

Примечание.

Эта проблема устранена в накопительном обновлении 7 для SQL Server 2022.

Дополнительная информация

Флаг трассировки 9810 отключает подсистему OLTP в памяти от освобождения памяти локального хранилища потоков (TLS), возвращая поведение SQL Server 2019.