Rośnie rozmiar pliku dziennika transakcji dla baz danych z olTP w pamięci w programie SQL Server 2022
Symptomy
Gdy bazy danych mają włączoną funkcję OLTP w pamięci w programie SQL Server 2022, zauważysz, że plik dziennika transakcji stale rośnie. Ponadto dziennik błędów programu SQL Server może mieć komunikaty takie jak Close thread is falling behind: 4 checkpoints outstanding
.
Jeśli ponownie uruchomisz wystąpienie programu SQL Server, może się okazać, że ukończenie procesu odzyskiwania bazy danych zajmuje dużo czasu.
Rozwiązywanie problemów z systemami sys.databases i sys.dm_db_xtp_checkpoint_stats
Jeśli używasz widoku katalogu sys.databases do zbierania informacji i rozwiązywania tego problemu, kolumna
log_reuse_wait_desc
jest wyświetlanaXTP_CHECKPOINT
jako przyczyna długiego obcinania. Ta wartość wskazuje, że dziennik transakcji oczekuje na wystąpienie punktu kontrolnego OLTP w pamięci (wcześniej znanego jako Hekaton). Sugeruje to opóźnienie operacji tworzenia punktów kontrolnych, potencjalnie wpływające na wydajność lub wzrost pliku dziennika.W przypadku używania dynamicznego widoku zarządzania programu SQL Server (DMV) sys.dm_db_xtp_checkpoint_stats do zbierania informacji i rozwiązywania tego problemu kolumna
outstanding_checkpoint_count
zawiera wartość niezerową przez dłuższy czas. Wskazuje, że punkty kontrolne nie występują wydajnie, potencjalnie wpływając na wydajność i wzrost pliku dziennika.
Przyczyna
Program SQL Server 2022 wprowadził nowe funkcje, które zwiększają zarządzanie pamięcią na dużych serwerach pamięci w celu zmniejszenia warunków braku pamięci. Znany problem z tą zmianą może czasami prowadzić do zachowania opisanego w sekcji Objawy .
Rozwiązanie
Aby rozwiązać ten problem, wykonaj następujące kroki:
- Dodaj -T9810 jako parametr uruchamiania dla wystąpienia programu SQL Server.
- Uruchom ponownie wystąpienie.
- Utwórz punkt kontrolny, utwórz kopię zapasową dziennika, obserwuj
log_reuse_wait_desc
i zmniejsz dziennik, jeśli jest to konieczne, aby odzyskać miejsce.
Uwaga 16.
Ten problem został rozwiązany w aktualizacji zbiorczej 7 dla programu SQL Server 2022.
Więcej informacji
Flaga śledzenia 9810 wyłącza aparat OLTP w pamięci z odzyskania pamięci magazynu lokalnego wątku (TLS), przywracając zachowanie programu SQL Server 2019.