Microsoft hesabıyla oturum açın
Oturum açın veya hesap oluşturun.
Merhaba,
Farklı bir hesap seçin.
Birden çok hesabınız var
Oturum açmak istediğiniz hesabı seçin.

Belirtiler

Microsoft SQL Server'da WITH DTC_SUPPORT = PER_DB yan tümcesini kullanarak bir Kullanılabilirlik Grubu oluşturduğunuzu varsayalım. bir işlemde veya sp_executesql gibi sistem saklı yordamlarında SAVE TRANSACTION deyimi yürütmeye çalıştığınızda, aşağıdaki hata iletilerinden birini alırsınız:

Msg 627, Düzey 16, State 0, Line LineNumber
SAVE TRANSACTION dağıtılmış bir işlem içinde kullanılamaz.
Msg 12324, Düzey 16, State 100, Line LineNumber
Dağıtılmış işlemler (DTC), bellek için iyileştirilmiş tablolarda desteklenmez.
Hata: 3933, Önem Derecesi: 16, Durum: 1.
Bu işlemde etkin bir kaydetme noktası olduğundan işlem dağıtılmış bir işleme yükseltilemiyor.

Neden

Always On Kullanılabilirlik Grubundaki bir veritabanı WITH DTC_SUPPORT = PER_DB için etkinleştirildiğinde, bir işlem birden çok veritabanı içerdiği sürece, işlem SQL Server 2016 SP2 ve SQL Server 2017'de MSDTC işlemine yükseltilir. MSDTC işlemlerinde sınırlamalar vardır, örneğin kaydetme noktaları kullanılamaz, bellek için iyileştirilmiş tablolar kullanılamaz.

Bazı durumlarda veritabanları arası işlemler, kullanıcıların iki kullanıcı veritabanını içeren işlemleri olduğundan değil, geçerli veritabanı ve sistem veritabanlarını (ana, tempdb, model, sistem kaynak veritabanı) içerdiğinden gerçekleşir. Sistem kaynak veritabanı aslında salt okunur olduğundan, veritabanları arası bir işlem sistem kaynak veritabanını içeriyorsa ancak diğer sistem veritabanlarını içermiyorsa MSDTC işlemine yükseltilmesi gerekmez. 

Çözüm

Sistem kaynak veritabanı ve PER_DB DTC için etkinleştirilmiş bir Kullanılabilirlik Grubunun parçası olan bir kullanıcı veritabanı aynı SQL Server örneği içindeki veritabanları arası bir işleme dahilse, bu KB'de sunulan düzeltme MSDTC işlemine yükseltmeyi atlar.

Bu nedenle, yukarıda listelenen hataların özgün nedeni sistem kaynak veritabanını içeren veritabanları arası işlemse, bu düzeltme sorunu çözer. Bazen kullanıcı yukarıda listelenen hataları aynı temel nedenle görebilir. Bu düzeltmenin geçerli olduğu koşullar aşağıda listelemektedir:

  • Veritabanı, with DTC_SUPPORT = PER_DB ile etkinleştirilen Always On Kullanılabilirlik Grubunun bir parçasıdır.

  • Veritabanları arası işlem, bu veritabanını ve sistem kaynak veritabanını aynı SQL Server örneğinde içerir.

  • Veritabanları arası işlemin içinde SAVE TRANSACTION kullanılır veya bellek için iyileştirilmiş tablolar dahil edilir.

Bu tür işlemler, bu düzeltme olmadan yukarıda listelenen hatalarla başarısız olur. Bu düzeltme ile bu tür işlemler devam etmelidir.

Not: Bu düzeltme, sistem kaynak veritabanını içeren veritabanları arası işlemleri giderir, ancak kullanıcı veritabanlarını içeren ve SAVE TRANSACTION deyimi içeren veritabanları arası işlemler yine başarısız olur ve yeniden yazılması gerekir.

Bu sorun, SQL Server için aşağıdaki toplu güncelleştirmede düzeltildi:

SQL Server için her yeni toplu güncelleştirme, önceki toplu güncelleştirmede yer alan tüm düzeltmeleri ve tüm güvenlik düzeltmelerini içerir. SQL Server için en son toplu güncelleştirmelere göz atın:

Ek Bilgi

DTC_SUPPORT = PER_DB, bellek için iyileştirilmiş tablolar, SAVE TRANSACTION hakkında ek bilgileri aşağıdaki bağlantılarda bulabilirsiniz.

Aynı SQL Server örneği içindeki veritabanı işlemleri bu bölümü
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-instanceBellek için İyileştirilmiş Tablolar bağlantısına bağlar
https://learn.microsoft.com/en-us/sql/relational-databases/in-memory-oltp/transactions-with-memory-optimized-tables?view=sql-server-2017#limitationsSAVE TRANSACTION bu bölümü https://learn.microsoft.com/en-us/sql/t-sql/language-elements/save-transaction-transact-sql?view=sql-server-2017#remarks bağla

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

Durum

Microsoft bu sorunun "Uygulandığı öğe" bölümünde listelenen Microsoft ürünlerinde bulunduğunu onaylamıştır.

Başvurular

Microsoft'un yazılım güncelleştirmelerini açıklamak için kullandığı terminoloji hakkında bilgi edinin.

Daha fazla yardıma mı ihtiyacınız var?

Daha fazla seçenek mi istiyorsunuz?

Abonelik avantajlarını keşfedin, eğitim kurslarına göz atın, cihazınızın güvenliğini nasıl sağlayacağınızı öğrenin ve daha fazlasını yapın.

Topluluklar, soru sormanıza ve soruları yanıtlamanıza, geri bildirimde bulunmanıza ve zengin bilgiye sahip uzmanlardan bilgi almanıza yardımcı olur.

Bu bilgi yararlı oldu mu?

Dil kalitesinden ne kadar memnunsunuz?
Deneyiminizi ne etkiledi?
Gönder’e bastığınızda, geri bildiriminiz Microsoft ürün ve hizmetlerini geliştirmek için kullanılır. BT yöneticiniz bu verileri toplayabilecek. Gizlilik Bildirimi.

Geri bildiriminiz için teşekkürler!

×