KB4092554-FIX: veritabanı işlemleri SQL Server kullanılabilirlik grubunda dağıtılmış işlemlere yükseltildiğinde 627 veya 12324 hataları oluşuyor

Belirtiler

Microsoft SQL Server 'da wıth DTC_SUPPORT = PER_DB yan tümcesini kullanarak bir kullanılabilirlik grubu oluşturduğunuzu varsayalım. İşlem veya sp_executesqlgibi sistem tarafından depolanan yordamlardaişlemi kaydet deyimini yürütmeye çalıştığınızda,aşağıdaki hata iletilerinden birini alırsınız:

İleti 627, düzey 16, durum 0, satır LineNumber Dağıtılmış işlem içinde SAVE TRANSACTION kullanılamıyor. İleti 12324, düzey 16, durum 100, satır LineNumber Dağıtılmış işlemler (DTC) bellek için iyileştirilmiş tablolarla desteklenmez. Hata: 3933, önem derecesi: 16, durum: 1. Bu işlemde etkin bir kaydetme noktası olduğundan işlem dağıtılmış işlem olarak yükseltilemiyor.

Neden

Bir işlem birden çok veritabanı içerdiği sürece , her zaman kullanılabilirlik grubundaki bir veritabanı DTC_SUPPORT = PER_DB ile birlikteetkinleştirildiğinde, Işlem SQL Server 2016 SP2 ve SQL Server 2017 ile MSDTC işlemine yükseltilir. MSDTC işlemlerinde sınırlamalar vardır; örneğin, kayıt noktaları kullanılamaz, bellek için iyileştirilmiş tablolar kullanılamaz.

Bazı durumlarda, veritabanı işlemleri, kullanıcıların iki kullanıcı veritabanıyla ilgili işlemler olduğundan, ancak işlemler geçerli veritabanı ile sistem veritabanları (Master, tempdb, model, sistem kaynak veritabanı) içerdiğinden dolayı.Sistem kaynak veritabanı gerçekten salt okunur olduğu için, veritabanları arası işlem sistem kaynak veritabanını içeriyorsa, ancak DIĞER sistem veritabanlarından farklı olduğunda MSDTC işlemine yükseltme yapmanız gerekmez.

Çözüm

Bu KB 'de tanıtılan düzeltme, sistem kaynak veritabanı ve PER_DB DTC için etkinleştirilen bir kullanılabilirlik grubunun parçası olan bir kullanıcı veritabanı, aynı SQL Server örneğinde bir çapraz veritabanı işleminde yer alıyorsa, MSDTC işlemine yükseltmeyi atlar.

Bu nedenle, yukarıda listelenen hataların başlangıçtaki nedeni sistem kaynak veritabanıyla ilgili veritabanı işlemi Bazen Kullanıcı yukarıda listelenen hataları aynı temeldeki nedenle görebilir. Bu düzeltmenin uygulandığı koşullar aşağıda listelenmektedir:

  • Veritabanı, DTC_SUPPORT = PER_DB Ile her zaman açık olan kullanılabilirlik grubunun bir bölümüdür.

  • Bir çapraz veritabanı işlemi, aynı SQL Server örneğindeki bu veritabanını ve sistem kaynağı veritabanını içerir.

  • Veritabanı işlemi sırasında, Kaydet IŞLEMI kullanılır veya bellek için iyileştirilmiş tablolar vardır.

Bu işlem bu düzeltme olmadan yukarıda listelenen hatalarla başarısız olur. Bu düzeltmeyle ilgili işlem devam etmelidir.

Not: Bu düzeltme, sistem kaynağı veritabanını içeren veritabanları arası işlemleri giderir, ancak Kullanıcı VERITABANLARı Içeren ve işlem kaydet deyimini içeren veritabanları arası işlemler yine de başarısız olur ve yeniden yazılması gerekir.

Bu sorun, aşağıdaki SQL Server toplu güncelleştirmesinde giderilmiştir:

SQL Server 2017 için toplu güncelleştirme 7       

SQL Server 2016 SP2 için toplu güncelleştirme 1

Her bir SQL Server toplu güncelleştirmesi, önceki toplu güncelleştirmeyle birlikte gelen tüm düzeltmeleri ve tüm güvenlik düzeltmelerini içerir. En son SQL Server güncelleştirmelerini gözden geçirin:

En son SQL Server 2017 toplu güncelleştirmesi

En son SQL Server 2016 toplu güncelleştirmesi

Ek Bilgi

DTC_SUPPORT = PER_DB, bellek için iyileştirilmiş tablolar, Kaydet işlemi hakkında ek bilgi aşağıdaki bağlantılarda bulunabilir.

Aynı SQL Server örneğindeki veritabanı işlemleri bu bölümühttps://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-instancehafıza ile iyileştirilmiş tablolarabağlayan bu bölümü ,https://docs.microsoft.com/en-us/sql/relational-databases/in-memory-oltp/transactions-with-memory-optimized-tables?view=sql-server-2017#limitationsBu bölümü https://docs.Microsoft.com/en-US/SQL/t-SQL/Language-Elements/Save-Transaction-Transact-SQL?View=SQL-Server-2017#remarks

https://docs.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?

Yeteneklerinizi geliştirin
Eğitimleri keşfedin
Yeni özellikleri ilk olarak siz edinin
Microsoft Insider 'a katılın

Bu bilgi yardımcı oldu mu?

Geri bildiriminiz için teşekkür ederiz!

Geri bildiriminiz için teşekkürler! Office destek temsilcilerimizden biriyle görüşmeniz yararlı olabilir.

×