SQL Server 2022에서 메모리 내 OLTP를 사용하는 데이터베이스에 대한 트랜잭션 로그 파일 증가
증상
데이터베이스가 SQL Server 2022에서 메모리 내 OLTP 기능을 사용하도록 설정된 경우 트랜잭션 로그 파일이 지속적으로 증가하는 것을 볼 수 있습니다. 또한 SQL Server 오류 로그에는 다음과 같은 Close thread is falling behind: 4 checkpoints outstanding
메시지가 있을 수 있습니다.
SQL Server 인스턴스를 다시 시작하면 데이터베이스 복구 프로세스를 완료하는 데 시간이 오래 걸릴 수 있습니다.
sys.databases 및 sys.dm_db_xtp_checkpoint_stats 문제 해결
카탈로그 뷰 sys.databases 를 사용하여 정보를 수집하고 이 문제를 해결하는 경우 열
log_reuse_wait_desc
은 긴 잘림의 원인으로 표시됩니다XTP_CHECKPOINT
. 이 값은 트랜잭션 로그가 메모리 내 OLTP(이전의 Hekaton) 검사점이 발생하기를 기다리고 있음을 나타냅니다. 검사점 작업이 지연되어 성능 또는 로그 파일 증가에 영향을 미칠 수 있음을 시사합니다.SQL Server DMV(동적 관리 뷰) sys.dm_db_xtp_checkpoint_stats 사용하여 정보를 수집하고 이 문제를 해결하는 경우 열
outstanding_checkpoint_count
에 오랜 기간 동안 0이 아닌 값이 표시됩니다. 검사점이 효율적으로 발생하지 않아 성능 및 로그 파일 증가에 영향을 미칠 수 있음을 나타냅니다.
원인
SQL Server 2022는 메모리 부족 상태를 줄이기 위해 대용량 메모리 서버의 메모리 관리를 개선하는 새로운 기능을 도입했습니다. 이 변경의 알려진 문제로 인해 증상 섹션에 설명된 동작이 발생할 수 있습니다.
해결
이 문제를 해결하려면 다음 단계를 수행합니다.
- -T9810을 SQL Server 인스턴스의 시작 매개 변수로 추가합니다.
- 인스턴스를 다시 시작합니다.
- 공간을 회수하는 데 필요한 경우 검사점을 발급하고, 로그 백업을 수행하고, 관찰
log_reuse_wait_desc
하고, 축소합니다.
참고 항목
이 문제는 SQL Server 2022용 누적 업데이트 7에서 해결되었습니다.
자세한 정보
추적 플래그 9810은 메모리 내 OLTP 엔진이 TLS(스레드 로컬 스토리지) 메모리를 회수하지 못하도록 설정하여 SQL Server 2019의 동작으로 되돌려 줍니다.