Udostępnij za pośrednictwem


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świetlana XTP_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:

  1. Dodaj -T9810 jako parametr uruchamiania dla wystąpienia programu SQL Server.
  2. Uruchom ponownie wystąpienie.
  3. Utwórz punkt kontrolny, utwórz kopię zapasową dziennika, obserwuj log_reuse_wait_desci 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.