다음을 통해 공유


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는 메모리 부족 상태를 줄이기 위해 대용량 메모리 서버의 메모리 관리를 개선하는 새로운 기능을 도입했습니다. 이 변경의 알려진 문제로 인해 증상 섹션에 설명된 동작이 발생할 수 있습니다.

해결

이 문제를 해결하려면 다음 단계를 수행합니다.

  1. -T9810을 SQL Server 인스턴스의 시작 매개 변수로 추가합니다.
  2. 인스턴스를 다시 시작합니다.
  3. 공간을 회수하는 데 필요한 경우 검사점을 발급하고, 로그 백업을 수행하고, 관찰 log_reuse_wait_desc하고, 축소합니다.

참고 항목

이 문제는 SQL Server 2022용 누적 업데이트 7에서 해결되었습니다.

자세한 정보

추적 플래그 9810메모리 내 OLTP 엔진이 TLS(스레드 로컬 스토리지) 메모리를 회수하지 못하도록 설정하여 SQL Server 2019의 동작으로 되돌려 줍니다.