Gejala
Asumsikan bahwa Anda memiliki setidaknya satu Grup Ketersediaan AlwaysOn dengan DTC_SUPPORT=PER_DB di Microsoft SQL Server 2016 atau 2017. Jika Anda menjalankan pemicu SQL Server yang berisi transaksi lintas database yang melibatkan setidaknya salah satu database Grup Ketersediaan, kegagalan pernyataan mungkin terjadi. Log kesalahan SQL Server melaporkan pesan kegagalan pernyataan berikut:
TanggalWaktu spid20s * *******************************************************************************
TanggalWaktu spid20s * MULAI TUMPUKAN DUMP:
TanggalWaktu spid20s * Lokasi: Nama File:3880
DateTime spid20s * Ekspresi: m_state == BaseXact::XACT_PREPARED || m_state == BaseXact::XACT_COMMITTED
TanggalWaktu spid20s * SPID: 20
DateTime spid20s Kesalahan: 17066, Tingkat Keparahan: 16, Negara: 1.
DateTime spid20s SQL Server Assertion: File: <FileName>, line=LineNumber Failed Assertion = 'm_state == BaseXact::XACT_PREPARED || m_state == BaseXact::XACT_COMMITTED'. Kesalahan ini mungkin terkait dengan waktu. Jika kesalahan berlanjut setelah menjalankan ulang pernyataan, gunakan DBCC CHECKDB untuk memeriksa integritas struktural database, atau mulai ulang server untuk memastikan struktur data dalam memori tidak rusak.
TanggalWaktu spid20s Kesalahan: 3624, Tingkat Keparahan: 20, Negara: 1.
DateTime spid20s Pemeriksaan afirmasi sistem telah gagal. Periksa log kesalahan SQL Server untuk detailnya. Biasanya, kegagalan pernyataan disebabkan oleh bug perangkat lunak atau kerusakan data. Untuk memeriksa kerusakan database, pertimbangkan untuk menjalankan DBCC CHECKDB. Jika Anda setuju untuk mengirim dump ke Microsoft selama penyiapan, dump mini akan dikirim ke Microsoft. Pembaruan mungkin tersedia dari Microsoft di Paket Layanan terbaru atau di Hotfix dari Dukungan Teknis.
Selain itu, Anda mungkin menerima pesan kesalahan yang menyerupai seperti berikut:
TanggalWaktu Kesalahan Server: 19407, Tingkat Keparahan: 16, Status: 1.
TanggalWaktu Server Sewa antara grup ketersediaan 'GroupName' dan Kluster Failover Windows Server telah kedaluwarsa. Terjadi masalah konektivitas antara instans SQL Server dan Kluster Failover Windows Server. Untuk menentukan apakah grup ketersediaan melakukan failover dengan benar, periksa sumber daya grup ketersediaan yang sesuai di Kluster Failover Windows Server.
Status
Microsoft telah mengonfirmasi bahwa ini adalah masalah dalam produk Microsoft sebagaimana tercantum di bagian "Berlaku untuk".
Resolusi
Informasi Pembaruan Kumulatif:
Masalah ini telah diperbaiki dalam pembaruan kumulatif berikut untuk SQL Server:
Tentang pembaruan kumulatif 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 perbaikan sesuai permintaan:
Masalah ini telah diperbaiki dalam hotfix sesuai permintaan berikut untuk SQL Server:
- Hotfix sesuai permintaan untuk SQL Server 2017 CU13
- Hotfix sesuai permintaan untuk SQL Server 2016 SP2 CU4
Referensi
Pelajari tentang terminologi yang digunakan Microsoft untuk menjelaskan pembaruan perangkat lunak.