Share via


O arquivo de log de transações cresce para bancos de dados com In-Memory OLTP em SQL Server 2022

Sintomas

Quando seus bancos de dados tiverem o recurso OLTP na memória habilitado no SQL Server 2022, você perceberá que o arquivo de log de transações cresce continuamente. Além disso, o log de erros SQL Server pode ter mensagens como Close thread is falling behind: 4 checkpoints outstanding.

Se você reiniciar a instância SQL Server, poderá notar que o banco de dados leva muito tempo para concluir o processo de recuperação do banco de dados.

Solucionar problemas com sys.databases e sys.dm_db_xtp_checkpoint_stats

  • Quando você usa a exibição de catálogo sys.databases para coletar informações e solucionar problemas desse problema, a coluna log_reuse_wait_desc mostra XTP_CHECKPOINT como o motivo da longa truncamento. Esse valor indica que o log de transações está aguardando a ocorrência de um ponto de verificação In-Memory OLTP (anteriormente conhecido como Hekaton). Ele sugere um atraso nas operações de ponto de verificação, potencialmente afetando o desempenho ou o crescimento do arquivo de log.

  • Quando você usa o sys.dm_db_xtp_checkpoint_stats SQL Server modo de exibição de gerenciamento dinâmico (DMV) para coletar informações e solucionar esse problema, a coluna outstanding_checkpoint_count mostra um valor não zero por um longo período de tempo. Ele indica que os pontos de verificação não estão ocorrendo com eficiência, potencialmente afetando o desempenho e o crescimento do arquivo de log.

Motivo

SQL Server 2022 introduziu novos recursos que melhoram o gerenciamento de memória em servidores de memória grandes para reduzir as condições fora da memória. Um problema conhecido nessa alteração às vezes pode levar ao comportamento descrito na seção Sintomas .

Resolução

Para resolver o problema, siga estas etapas:

  1. Adicione -T9810 como o parâmetro de inicialização da instância SQL Server.
  2. Reinicie a instância.
  3. Emita um ponto de verificação, faça um backup de log, observe log_reuse_wait_desce reduza o log se necessário para recuperar espaço.

Mais informações

O sinalizador de rastreamento 9810 desabilita o mecanismo OLTP In-Memory de recuperar a memória TLS (Thread Local Storage), revertendo para o comportamento de SQL Server 2019.