Sintomi
Si supponga di avere almeno un gruppo di disponibilità AlwaysOn con DTC_SUPPORT = PER_DB in Microsoft SQL Server 2016 o 2017. Se si esegue un trigger di SQL Server che contiene una transazione tra database che include almeno uno dei database del gruppo di disponibilità, potrebbe verificarsi un errore di asserzione. Il log degli errori di SQL Server segnala i messaggi di errore di asserzione seguenti:
DateTime spid20s * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *DateTime * * * * * * ** * * * * * * * * * * * * * * * * * * * * * * * * * * * * * nomefile: 3880DateTime spid20s * Expression: m_state = = BaseXact:: XACT_PREPARED | | m_state = = BaseXact:: XACT_COMMITTEDDateTime SPID20S * SPID: 20
Errore spid20s DateTime : 17066, gravità: 16, stato: 1.Asserzione DateTime Spid20s SQL Server: File: <nomefile>, line =lineNumber asserzione non riuscita =' m_state = = BaseXact:: XACT_PREPARED | | m_state = = BaseXact:: XACT_COMMITTED '. Questo errore può essere correlato alla temporizzazione. Se l'errore persiste dopo la rieseguire l'istruzione, usare DBCC CHECKDB per controllare il database per l'integrità strutturale oppure riavviare il server per verificare che le strutture di dati in memoria non siano danneggiate.Errore spid20s DateTime : 3624, gravità: 20, stato: 1.DateTime spid20s il controllo dell'asserzione di sistema non è riuscito. Per informazioni dettagliate, vedere il log degli errori di SQL Server. In genere, un errore di asserzione è causato da un bug software o da un danneggiamento dei dati. Per verificare il danneggiamento del database, provare a eseguire DBCC CHECKDB. Se si è deciso di inviare dump a Microsoft durante l'installazione, verrà inviato un mini dump a Microsoft. Un aggiornamento potrebbe essere disponibile da Microsoft nel Service Pack più recente o in un hotfix dal supporto tecnico.
È inoltre possibile che venga visualizzato un messaggio di errore simile al seguente:
DateTime Errore del Server DateTime: 19407, gravità: 16, stato: 1.
Server DateTime il lease tra il gruppo di disponibilità "GroupName" e il cluster di failover di Windows Server è scaduto. Si è verificato un problema di connettività tra l'istanza di SQL Server e il cluster di failover di Windows Server. Per determinare se il gruppo di disponibilità non riesce correttamente, controllare la risorsa del gruppo di disponibilità corrispondente nel cluster di failover di Windows Server.
Stato
Microsoft ha confermato che questo problema si verifica nei prodotti elencati nella sezione "Si applica a".
Risoluzione
Informazioni sull'aggiornamento cumulativo:
Questo problema è stato risolto negli aggiornamenti cumulativi seguenti per SQL Server:
Informazioni sugli aggiornamenti cumulativi per SQL Server:Ogni nuovo aggiornamento cumulativo per SQL Server contiene tutti gli hotfix e tutti gli aggiornamenti della sicurezza inclusi nell'aggiornamento cumulativo precedente. Vedere gli ultimi aggiornamenti cumulativi per SQL Server:
Informazioni sull'hotfix su richiesta:
Questo problema è stato risolto nei seguenti hotfix su richiesta per SQL Server:
Riferimenti
Informazioni sulla terminologia utilizzata da Microsoft per descrivere gli aggiornamenti software.