O ficheiro de registo de transações cresce para bases de dados com In-Memory OLTP no SQL Server 2022
Sintomas
Quando as bases de dados têm a funcionalidade OLTP Dentro da Memória ativada no SQL Server 2022, repara que o ficheiro de registo de transações aumenta continuamente. Além disso, o registo de erros do SQL Server pode ter mensagens como Close thread is falling behind: 4 checkpoints outstanding
.
Se reiniciar a instância do SQL Server, poderá reparar que a base de dados demora muito tempo a concluir o processo de recuperação da base de dados.
Resolver o problema com sys.databases e sys.dm_db_xtp_checkpoint_stats
Quando utiliza a vista de catálogo sys.databases para recolher informações e resolver este problema, a coluna
log_reuse_wait_desc
é apresentadaXTP_CHECKPOINT
como o motivo da truncagem prolongada. Este valor indica que o registo de transações está a aguardar a ocorrência de um ponto de verificação OLTP (anteriormente conhecido como Hekaton) In-Memory. Sugere um atraso nas operações de ponto de verificação, que pode afetar potencialmente o desempenho ou o crescimento do ficheiro de registo.Quando utiliza a vista de gestão dinâmica (DMV) do SQL Server sys.dm_db_xtp_checkpoint_stats para recolher informações e resolver este problema, a coluna
outstanding_checkpoint_count
mostra um valor diferente de zero durante um longo período de tempo. Indica que os pontos de verificação não estão a ocorrer de forma eficiente, afetando potencialmente o desempenho e o crescimento dos ficheiros de registo.
Motivo
O SQL Server 2022 introduziu novas capacidades que melhoram a gestão da memória em grandes servidores de memória para reduzir as condições de memória esgotada. Um problema conhecido nesta alteração pode, por vezes, levar ao comportamento descrito na secção Sintomas .
Resolução
Para resolver o problema, siga estes passos:
- Adicione -T9810 como o parâmetro de arranque da instância do SQL Server.
- Reinicie a instância.
- Emita um ponto de verificação, faça uma cópia de segurança de registo, observe
log_reuse_wait_desc
e reduza o registo, se necessário, para recuperar espaço.
Mais informações
O sinalizador de rastreio 9810 desativa o motor OLTP In-Memory de recuperar a memória do Armazenamento Local de Threads (TLS), revertendo para o comportamento do SQL Server 2019.
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de