Logige sisse Microsofti kontoga
Logige sisse või looge konto.
Tere!
Valige mõni muu konto.
Teil on mitu kontot
Valige konto, millega soovite sisse logida.

Sümptomid

Oletagem, et luua kättesaadavus rühma, kasutades DTC_SUPPORT = PER_DB klausel Microsoft SQL Server. Kui proovite salvestada tehingu lauset tehingus või süsteemis talletatud protseduurides (nt sp_executesql),you receive one of the following error messages:kuvatakse üks järgmistest tõrketeadetest.

MSG 627, tase 16, olek 0, rea LineNumber Ei saa kasutada Distributed transactions salvestatud TEHINGUt. MSG 12324, tase 16, olek 100, rea LineNumber Distributed transactions (DTC) pole mälu optimeeritud tabelite abil toetatud. Tõrge: 3933; raskusaste: 16; olek: 1. Tehingut ei saa liigendatud tehinguks edendada, kuna selles tehingus on aktiivne salvestuskoht.

Põhjus

Kui jaotises kättesaadavus on alati lubatud andmebaas DTC_SUPPORT = PER_DB, kui tehinguga kaasneb mitu andmebaasi, edutatakse tehing SQL Server 2016 SP2 ja SQL Server 2017 tehingute MSDTC. MSDTC tehingutes on piiranguid (nt punkte ei saa kasutada), ei saa mälu optimeeritud tabeleid kasutada.

Mõnes olukorras võib juhtuda, et andmebaasi tehingud ei juhtu, sest kasutajatel on kahe kasutaja andmebaasidega seotud tehingud, kuid kuna tehingud hõlmavad praegust andmebaasi ja süsteemi andmebaase (juhtslaid, tempdb, mudel, süsteemi ressurssi andmebaas). Kuna süsteemi ressurssi andmebaas on tegelikult kirjutuskaitstud, pole vaja MSDTC tehingut edendada, kui piiriülese andmebaasi tehing hõlmab süsteemi ressursside andmebaasi, kuid mitte muid süsteemi andmebaase.

Lahendus

Selles TEABEBAASis toodud parandus jätab vahele MSDTC tehingu, kui süsteemi ressurssi andmebaas ja kasutaja andmebaas, mis on osa PER_DB DTC jaoks lubatud kättesaadavuse rühmast, on kaasatud sama SQL serveri eksemplaris olevasse risti andmebaasi tehingusse.

Seega, kui eespool loetletud vigade algne põhjus on piiriülese andmebaasi tehing, mis hõlmab süsteemi ressursside andmebaasi, lahendab see lahendus selle. Mõnikord võib kasutaja näha ülaltoodud tõrkeid sama põhjuse alusel. Järgmises loendis on tingimused, mille alusel see parandus kehtib.

  • Andmebaas on osa DTC_SUPPORT = PER_DB lubatud alati kättesaadavuse grupist.

  • Piiriülese andmebaasi tehing hõlmab seda andmebaasi ja süsteemi ressurssi andmebaasi sama SQL serveri eksemplaris.

  • Piiriülese andmebaasi tehingus kasutatakse TEHINGUt, SALVESTAtakse tehing või on kaasatud mälu optimeeritud tabeleid.

Sellist tehingut ei saa lahendada ülaltoodud vigadega. Selle parandusega tuleks tehing jätkata.

Märkus: see lahendus kõrvaldab andmebaasi kanded, mis hõlmavad süsteemi ressursside andmebaasi, kuid mis tahes andmebaasiga seotud tehingut, mis sisaldab kasutajate andmebaase ja sisaldab salvestamisega seotud kannet , jääb alles ja see tuleb uuesti kirjutada.

See probleem on lahendatud järgmises SQL serveri koondvärskenduses:

Kumulatiivne Update 7 SQL Server 2017       

Kumulatiivne Update 1 SQL Server 2016 SP2 jaoks

Iga uus koondvärskenduses SQL Server sisaldab kõiki käigultparandused ja kõik turvaparandusi, mis kuulusid eelmise koondvärskenduse. Vaadake SQL serveri kumulatiivseid värskendusi.

Uusim SQL Server 2017 koondvärskenduses

Uusim SQL Server 2016 koondvärskenduses

Lisateave

Lisateavet DTC_SUPPORT = PER_DB, mälu optimeeritud tabelite kohta leiate järgmistest linkidest.

Sama SQL serveri eksemplaris olevad andmebaasi kanded lingivadselle osahttps://docs.microsoft.com/en-US/SQL/Database-Engine/Availability-groups/Windows/transactions-Always-on-Availability-and-Database-mirroring?View=SQL-Server-2017#sql-server-2016-sp1-and-before-support-for-cross-database-transactions-within-the-same-sql-server-instancemälu optimeeritud tabelitega , mis seovad selle osa https://docs.microsoft.com/en-US/SQL/relational-Databases/In-Memory-OLTP/transactions-with-Memory-Optimized-Tables?View=SQL-Server-2017#limitationsselle osa https://docs.microsoft.com/en-US/SQL/t-SQL/Language-Elements/Save-Transaction-Transact-SQL?View=SQL-Server-2017#remarks

https://docs.microsoft.com/sql/database-engine/availability-groups/windows/configure-replication-for-always-on-availability-groups-sql-server?view=sql-server-2017#step2

Olek

Microsoft on kinnitanud, et see probleem esineb jaotises "kehtib järgmiste toodete kohta" loetletud Microsofti toodetes.

Viited

Siit saate teada, Kuidas Microsoft kasutab tarkvaravärskenduste kirjeldamiseks.

Kas vajate veel abi?

Kas soovite rohkem valikuvariante?

Siin saate tutvuda tellimusega kaasnevate eelistega, sirvida koolituskursusi, õppida seadet kaitsma ja teha veel palju muud.

Kogukonnad aitavad teil küsimusi esitada ja neile vastuseid saada, anda tagasisidet ja saada nõu rikkalike teadmistega asjatundjatelt.

Kas sellest teabest oli abi?

Kui rahul te keelekvaliteediga olete?
Mis mõjutas teie hinnangut?
Kui klõpsate nuppu Edasta, kasutatakse teie tagasisidet Microsofti toodete ja teenuste täiustamiseks. IT-administraator saab neid andmeid koguda. Privaatsusavaldus.

Täname tagasiside eest!

×