Masuk dengan Microsoft
Masuk atau buat akun.
Halo,
Pilih akun lain.
Anda memiliki beberapa akun
Pilih akun yang ingin Anda gunakan untuk masuk.

Gejala

Misalnya Anda membuat Grup Ketersediaan menggunakan klausul WITH DTC_SUPPORT = PER_DB di Microsoft SQL Server. Ketika mencoba menjalankan pernyataan SAVE TRANSACTION dalam prosedur transaksi atau sistem yang disimpan seperti sp_executesql, Anda menerima salah satu pesan kesalahan berikut:

Msg 627, Tingkat 16, Negara Bagian 0, LineNumber
Tidak dapat menggunakan SAVE TRANSACTION dalam transaksi yang didistribusikan.
Msg 12324, Tingkat 16, Negara Bagian 100, LineNumber
Transaksi terdistribusi (DTC) tidak didukung dengan tabel memori yang dioptimalkan.
Kesalahan: 3933, Keparahan: 16, Negara Bagian: 1.
Tidak dapat mempromosikan transaksi ke transaksi yang didistribusikan karena terdapat titik simpan aktif dalam transaksi ini.

Penyebab

Ketika database dalam Always On Availability Group diaktifkan untuk WITH DTC_SUPPORT = PER_DB, selama transaksi melibatkan beberapa database, transaksi dipromosikan ke transaksi MSDTC dalam SQL Server 2016 SP2 dan SQL Server 2017. Ada batasan dalam transaksi MSDTC, misalnya titik penyimpanan tidak dapat digunakan, tabel memori yang dioptimalkan tidak dapat digunakan.

Dalam beberapa situasi transaksi lintas database terjadi bukan karena pengguna memiliki transaksi yang melibatkan dua database pengguna, tetapi karena transaksi melibatkan database sistem dan database saat ini (master, tempdb, model, database sumber daya sistem). Karena database sumber daya sistem benar-benar dibaca saja, tidak perlu mempromosikan ke transaksi MSDTC jika transaksi database silang melibatkan database sumber daya sistem tetapi tidak database sistem lainnya. 

Pemecahan Masalah

Perbaikan yang diperkenalkan dalam KB ini melewati promosi ke transaksi MSDTC jika database sumber daya sistem dan database pengguna yang merupakan bagian dari Grup Ketersediaan yang diaktifkan untuk PER_DB DTC terlibat dalam transaksi database silang dalam instans SQL Server yang sama.

Oleh karena itu jika penyebab asli kesalahan yang tercantum di atas adalah transaksi database silang yang melibatkan database sumber daya sistem, perbaikan ini akan mengatasinya. Terkadang pengguna mungkin melihat kesalahan yang tercantum di atas dengan penyebab yang mendasar yang sama. Berikut ini mencantumkan kondisi di mana perbaikan ini berlaku:

  • Database adalah bagian dari Grup Ketersediaan Selalu Aktif yang diaktifkan WITH DTC_SUPPORT = PER_DB.

  • Transaksi lintas database melibatkan database ini dan database sumber daya sistem dalam contoh SQL Server yang sama.

  • Di dalam transaksi database silang, SAVE TRANSACTION digunakan, atau tabel yang dioptimalkan memori dilibatkan.

Transaksi tersebut akan gagal dengan kesalahan yang tercantum di atas tanpa perbaikan ini. Dengan perbaikan ini, transaksi tersebut harus dilanjutkan.

Catatan: Perbaikan ini membahas transaksi lintas database yang melibatkan database sumber daya sistem, tetapi setiap transaksi lintas database yang melibatkan database pengguna dan berisi pernyataan SAVE TRANSACTION masih akan gagal dan harus ditulis ulang.

Masalah ini telah diperbaiki dalam pembaruan kumulatif berikut untuk SQL Server:

Setiap pembaruan kumulatif baru untuk SQL Server berisi semua hotfix dan semua perbaikan keamanan yang disertakan dengan pembaruan kumulatif sebelumnya. Lihat pembaruan kumulatif terbaru untuk SQL Server:

Informasi Selengkapnya

Informasi tambahan tentang DTC_SUPPORT = PER_DB, tabel yang dioptimalkan memori, SIMPAN TRANSAKSI dapat ditemukan di tautan berikut.

Transaksi database dalam instans SQL Server yang sama menautkan bagian ini ke 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
Tabel yang Dioptimalkan Memori menautkan bagian ini ke
https://learn.microsoft.com/en-us/sql/relational-databases/in-memory-oltp/transactions-with-memory-optimized-tables?view=sql-server-2017#limitationsSIMPAN TRANSAKSI tautkan bagian ini ke 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 telah mengonfirmasi bahwa ini adalah masalah pada produk Microsoft yang tercantum di bagian "Berlaku untuk".

Referensi

Pelajari tentang terminologi yang digunakan Microsoft untuk menjelaskan pembaruan perangkat lunak.

Perlu bantuan lainnya?

Ingin opsi lainnya?

Jelajahi manfaat langganan, telusuri kursus pelatihan, pelajari cara mengamankan perangkat Anda, dan banyak lagi.

Komunitas membantu Anda bertanya dan menjawab pertanyaan, memberikan umpan balik, dan mendengar dari para ahli yang memiliki pengetahuan yang luas.

Apakah informasi ini berguna?

Seberapa puaskah Anda dengan kualitas bahasanya?
Apa yang memengaruhi pengalaman Anda?
Dengan menekan kirim, umpan balik Anda akan digunakan untuk meningkatkan produk dan layanan Microsoft. Admin TI Anda akan dapat mengumpulkan data ini. Pernyataan Privasi.

Terima kasih atas umpan balik Anda!

×