Файл журнала транзакций растет для баз данных с помощью 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 появились новые возможности, которые улучшают управление памятью на больших серверах памяти, чтобы снизить состояние нехватки памяти. Известная проблема в этом изменении иногда может привести к поведению, описанному в разделе "Симптомы ".
Решение
Чтобы устранить проблему, выполните следующие действия.
- Добавьте -T9810 в качестве параметра запуска для экземпляра SQL Server.
- Перезапустите экземпляр.
- Создайте контрольную точку, создайте резервную копию журнала, просмотрите
log_reuse_wait_desc
и сократите журнал при необходимости, чтобы освободить место.
Примечание.
Эта проблема устранена в накопительном обновлении 7 для SQL Server 2022.
Дополнительная информация
Флаг трассировки 9810 отключает подсистему OLTP в памяти от освобождения памяти локального хранилища потоков (TLS), возвращая поведение SQL Server 2019.