Gejala
Pertimbangkan skenario berikut:
-
Anda menggunakan Microsoft SQL Server 2016 Service Pack 2 (SP2) Pembaruan Kumulatif 2 (CU2) atau versi yang lebih baru.
-
Anda menjalankan instans yang menghosting banyak database (biasanya lebih dari 200), dan instans tersebut merupakan bagian dari Grup Ketersediaan Selalu Aktif (AG) (biasanya dengan peran server sekunder). Note Semua database pengguna tidak perlu dimiliki oleh AG.
-
Anda menjalankan aplikasi Layanan Salinan Bayangan Volume (VSS) untuk meminta pencadangan semua atau beberapa database instans SQL Server.
Dalam skenario ini, Layanan Penulis SQL dapat mencapai situasi deadlock dan tanpa batas terus mengunci tabel sistem internal dalam master (sys.sysdbreg dengan object_id 28). Selain itu, kunci ini pada gilirannya mencegah pembacaan dari sistem Tampilan Manajemen Dinamis (DMV) seperti sys.dm_hadr_database_replica_states, dan dapat menyebabkan pemblokiran sekunder utama dalam contoh. Selain itu, Anda melihat bahwa analisis rantai blok mengembalikan pernyataan berikut yang berasal dari SQL Server VSS Writer sebagai pemblokir kepala:
"pilih nama, recovery_model_desc, state_desc, CONVERT(bilangan bulat, is_in_standby), ISNULL(source_database_id,0) dari master.sys.databases"
Maka SQL Server akan memiliki status tunggu ASYNC_NETWORK_IO.
Note Karena penantian ASYNC_NETWORK_IO diterapkan, wait_time terhadapnya tidak akan pernah melebihi dua detik (2.000 ms). Namun, tipe tunggu akan tetap ada tanpa batas waktu, dan situasi ini tidak akan pernah membuka blokir sendiri. Ini mengharuskan Anda untuk membunuh layanan penulis SQL untuk membuka blokir situasi.
Di antara SPID yang diblokir oleh head blocker ini, akan sering ada SPID DBSTARTUP (alwayson Secondary DB redo).
Status
Microsoft telah mengonfirmasi bahwa ini adalah masalah pada produk Microsoft yang tercantum di bagian "Berlaku untuk".
Pemecahan Masalah
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:
Referensi
Pelajari tentang terminologi yang digunakan Microsoft untuk menjelaskan pembaruan perangkat lunak.