Prijavite se pomoću Microsoft naloga
Prijavite se ili kreirajte nalog.
Zdravo,
Izaberite drugi nalog.
Imate više naloga
Odaberite nalog pomoću kojeg želite da se prijavite.

Simptome

Pretpostavimo da kreirate grupu dostupnosti pomoću odredbe WITH DTC_SUPPORT = PER_DB u programu Microsoft SQL Server. Kada pokušate da izvršite izraz SAVE TRANSACTION u transakciji ili sistemski uskladištenim procedurama kao što je sp_executesql, dobijate neku od sledećih poruka o grešci:

Msg 627, Nivo 16, Stanje 0, LineNumber
Nije moguće koristiti SAVE TRANSACTION unutar distribuirane transakcije.
Msg 12324, Nivo 16, Država 100, LineNumber
Distribuirane transakcije (DTC) nisu podržane sa tabelama optimizovanim memorijom.
Greška: 3933, stepen značaja: 16, stanje: 1.
Nije moguće unaprediti transakciju u distribuiranu transakciju zato što postoji aktivna tačka čuvanja u ovoj transakciji.

Izazvati

Kada je baza podataka u grupi "Uvek pri dostupnosti" omogućena za WITH DTC_SUPPORT = PER_DB, sve dok transakcija uključuje više baza podataka, transakcija se promoviše u MSDTC transakciju u sistemu SQL Server 2016 SP2 i SQL Server 2017. Postoje ograničenja u MSDTC transakcijama, na primer, nije moguće koristiti tačke čuvanja, tabele optimizovane za memoriju ne mogu da se koriste.

U nekim situacijama transakcije između baza podataka ne dešavaju se zato što korisnici imaju transakcije koje uključuju dve korisničke baze podataka, već zato što transakcije uključuju trenutnu bazu podataka i sistemske baze podataka (master, tempdb, model, baza podataka sistemskih resursa). Pošto je baza podataka sistemskih resursa zapravo samo za čitanje, nije neophodno da podignete nivo na MSDTC transakciju ako transakcija između baza podataka uključuje sistemsku bazu podataka resursa, ali ne i druge sistemske baze podataka. 

Rezoluciju

Ispravka uvedena u ovom KB-u preskače unapređenje u MSDTC transakciju ako su baza podataka sistemskih resursa i korisnička baza podataka koja je deo grupe dostupnosti omogućene za PER_DB DTC uključeni u transakciju između baza podataka u okviru iste SQL Server instance.

Stoga, ako je prvobitni uzrok grešaka navedenih iznad unakrsna transakcija baze podataka koja uključuje bazu podataka sistemskih resursa, ovo rešenje će je rešiti. Ponekad korisnik može da vidi gorenavedene greške sa istim osnovnim uzrokom. U nastavku su navedeni uslovi pod kojima se ovo rešenje primenjuje:

  • Baza podataka je deo grupe "Uvek na dostupnosti" koja je omogućena WITH DTC_SUPPORT = PER_DB.

  • Transakcija između baza podataka uključuje ovu bazu podataka i bazu podataka sistemskih resursa u istoj SQL Server instanci.

  • Unutar transakcije između baza podataka koristi se SAVE TRANSACTION ili su uključene tabele optimizovane za memoriju.

Takva transakcija ne bi uspela sa gorenavedenim greškama bez ove ispravke. Uz ovo rešenje, takva transakcija bi trebalo da se nastavi.

Napomena: Ova ispravka se odnosi na transakcije između baza podataka koje uključuju bazu podataka sistemskih resursa, ali svaka transakcija između baza podataka koja uključuje korisničke baze podataka i sadrži izraz SAVE TRANSACTION i dalje neće uspeti i mora biti ponovo napisana.

Ovaj problem je rešen u sledećoj kumulativnom ažuriranju za SQL Server:

Svaka nova kumulativna ispravka za SQL Server sadrži sve hitne ispravke i sve bezbednosne ispravke koje su uključene u prethodnu kumulativnu ispravku. Pogledajte najnovije kumulativne ispravke za SQL Server:

Više informacija

Dodatne informacije DTC_SUPPORT = PER_DB, tabele optimizovane za memoriju, SAVE TRANSACTION možete pronaći na sledećim vezama.

Transakcije baze podataka u okviru iste SQL Server instance
povezuju ovaj deo https://learn.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-instance tabelama optimizovanim za memorijui povežu ovaj deo sa
https://learn.microsoft.com/en-us/sql/relational-databases/in-memory-oltp/transactions-with-memory-optimized-tables?view=sql-server-2017#limitationsSAČUVAJ TRANSAKCIJU povežite ovaj deo sa https://learn.microsoft.com/en-us/sql/t-sql/language-elements/save-transaction-transact-sql?view=sql-server-2017#remarks

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

Status

Microsoft je potvrdio da je ovo problem u Microsoft proizvodima koji su navedeni u odeljku "Odnosi se na".

Reference

Saznajte više o terminologiji koju Microsoft koristi za opis softverskih ispravki.

Da li vam je potrebna dodatna pomoć?

Želite još opcija?

Istražite pogodnosti pretplate, pregledajte kurseve za obuku, saznajte kako da obezbedite uređaj i još mnogo toga.

Zajednice vam pomažu da postavljate pitanja i odgovarate na pitanja, dajete povratne informacije i čujete mišljenje od stručnjaka sa bogatim znanjem.

Da li su vam ove informacije koristile?

Koliko ste zadovoljni kvalitetom jezika?
Šta je uticalo na vaše iskustvo?
Kada kliknete na dugme Prosledi“, vaše povratne informacije će se koristiti za poboljšanje Microsoft proizvoda i usluga. Vaš IT administrator će moći da prikupi ove podatke. Izjava o privatnosti.

Hvala vam na povratnim informacijama!

×