Simptome
Să presupunem că aveți cel puțin un grup de disponibilitate AlwaysOn cu DTC_SUPPORT = PER_DB în Microsoft SQL Server 2016 sau 2017. Dacă executați un trigger SQL Server care conține o tranzacție Cross-Database care implică cel puțin una dintre bazele de date de grup de disponibilitate, se poate produce o eroare de afirmație. Jurnalul de erori SQL Server raportează următoarele mesaje de eroare de afirmație:
DateTime spid20s * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ** * * * * * * * * Nume fișier: 3880DateTime spid20s * expresie: m_stateDateTime = = BaseXact:: XACT_PREPARED | | m_state = = BaseXact:: XACT_COMMITTEDDateTime SPID20S * SPID: 20
Eroare DateTime spid20s: 17066, severitate: 16, stare: 1.DateTime Spid20s SQL Server afirmație: fișier: <filename>, line =LineNumber nu a reușit afirmația = ' m_state = = BaseXact:: XACT_PREPARED | | m_state = = BaseXact:: XACT_COMMITTED '. Această eroare poate avea legătură cu sincronizarea. Dacă eroarea persistă după ce Reexecutați instrucțiunea, utilizați DBCC CHECKDB pentru a verifica baza de date pentru integritatea structurală sau reporniți serverul pentru a vă asigura că structurile de date din memorie nu sunt deteriorate.Eroare DateTime spid20s: 3624, severitate: 20, stare: 1.DateTime spid20s o verificare a susținerii sistemului nu a reușit. Verificați jurnalul de erori SQL Server pentru detalii. De obicei, o eroare de afirmație este cauzată de un defect de software sau de o deteriorare a datelor. Pentru a căuta corupția bazei de date, luați în considerare executarea DBCC CHECKDB. Dacă ați fost de acord să trimiteți gropi la Microsoft în timpul instalării, va fi trimis un mini dump către Microsoft. Este posibil ca o actualizare să fie disponibilă de la Microsoft în cel mai recent pachet Service Pack sau într-o remediere rapidă din asistența tehnică.
În plus, este posibil să primiți un mesaj de eroare care seamănă cu următorul:
DateTime Eroare de Server DateTime: 19407, severitate: 16, stare: 1.
Server DateTime contractul de leasing între grupul de disponibilitate "GroupName" și Windows Server failover cluster a expirat. A apărut o problemă de conectivitate între instanța SQL Server și Windows Server failover cluster. Pentru a determina dacă grupul disponibilitate nu reușește corect, Verificați resursele corespunzătoare de grup de disponibilitate din Windows Server failover cluster.
Stare
Microsoft a confirmat că aceasta este o problemă în produsele Microsoft enumerate în secțiunea „Se aplică la”.
Rezolvare
Informații despre actualizarea cumulativă:
Această problemă este remediată în următoarele actualizări cumulative pentru SQL Server:
Despre actualizările cumulative pentru SQL Server:Fiecare nouă actualizare cumulativă pentru SQL Server conține toate remedierile rapide și toate remedierile de securitate care au fost incluse în actualizarea cumulativă anterioară. Consultați cele mai recente actualizări cumulative pentru SQL Server:
-
Cea mai recentă actualizare cumulativă pentru SQL Server 2017
-
Cea mai recentă actualizare cumulativă pentru SQL Server 2016
Informații despre remedierea rapidă la cerere:
Această problemă este remediată în următoarele remedieri rapide la cerere pentru SQL Server:
Referințe
Aflați mai multe despreterminologia utilizată de Microsoft pentru a descrie actualizările de software.