Sintomi
Si supponga di avere un database con un filegroup ottimizzato per la memoria in Microsoft SQL Server 2014. Il log delle transazioni può continuare a diventare grande e non è possibile troncare o ridurre il log. Se si sta colpendo questo problema, verranno visualizzati i sintomi seguenti:
-
La visualizzazione del catalogo sys. databases riporta log_reuse_wait_desc come "XTP_CHECKPOINT".
Select name, log_reuse_wait_desc from sys.databases where name='<DatabaseName>'
-
Un'operazione di checkpoint manuale nel database interessato non riesce e viene visualizzato il messaggio di errore seguente:
Msg 41315, livello 16, stato 4, operazione line NCheckpoint non riuscito nel database <nome database>.
-
Non è possibile trovare il thread del checkpoint offline che corrisponde al database interessato.
Select db_name(database_id) as DatabaseName, * from sys.dm_exec_requests where command = 'XTP_OFFLINE_CKPT'
-
L'esecuzione di query sulle statistiche sull'operazione di checkpoint OLTP in memoria per il database interessato restituisce 0 per ogni colonna:
Select * from sys.dm_db_xtp_checkpoint_stats
Risoluzione
Il problema è stato risolto per la prima volta nei seguenti aggiornamenti cumulativi di SQL Server:
Ogni nuovo aggiornamento cumulativo per SQL Server contiene tutti gli hotfix e tutti gli aggiornamenti della sicurezza inclusi nell'aggiornamento cumulativo precedente. È consigliabile scaricare e installare gli aggiornamenti cumulativi più recenti per SQL Server:
Soluzione alternativa
Per risolvere il problema, porta il database interessato offline e quindi torna online o Ricicli l'istanza di SQL Server.Nota Il log delle transazioni può essere troncato o ridotto. Tuttavia, il problema potrebbe ripresentarsi fino a quando non viene applicata la correzione.
Stato
Microsoft ha confermato che questo problema si verifica nei prodotti elencati nella sezione "Si applica a".