SQL Server 2012 (11.0.5058.0) Edisi Perusahaan
Kami memiliki 8 Grup yang Tersedia dalam kluster 2 (HA) +1 (DR) dan DMV pemantauan kami melaporkan hasil yang membingungkan saya. 6 Grup yang Tersedia dikonfigurasi untuk HA dan DR, 1 dikonfigurasi untuk HA saja, dan 1 dikonfigurasi untuk DR saja.
Masing-masing dari 6 Grup Ketersediaan HA / DR memiliki "SQLB" sebagai primer dan "SQLA" sebagai replika HA sekunder (sinkron) dan "SQLC" sebagai replika sekunder (async).
Di kedua sekunder:
SELECT dhags.group_id, dhags.synchronization_health_desc
FROM sys.dm_hadr_availability_group_states dhags
melaporkan bahwa semua kesehatan sinkronisasi replikasi Grup yang Ada adalah NOT_HEALTHY
dan
select replica_id,synchronization_health_desc
from sys.dm_hadr_availability_replica_states
melaporkan bahwa semua replika memiliki kesehatan sinkronisasi HEALTHY
.
Replika utama melaporkan semua Grup yang Tersedia dan replika dengan kesehatan sinkronisasi HEALTHY
.
Sementara saya mengerti bahwa satu laporan tentang kesehatan sinkronisasi replika dan laporan lainnya tentang kesehatan sinkronisasi AG, tampaknya logis bagi saya bahwa jika keadaan yang lebih granular (AG) tidak sehat, itu akan memengaruhi kesehatan keseluruhan dari konteks yang lebih luas (replika) . Saya tidak dapat menemukan dokumentasi MSDN yang menjelaskan bagaimana kesehatan ditentukan pada setiap level.
Mengapa secondaries melaporkan NOT_HEALTHY
kesehatan tersinkronisasi Grup, tetapi HEALTHY
untuk kesehatan sinkronisasi replika, dan mengapa ini berbeda dari laporan primer?
sumber
NOT_HEALTHY
replika ASYNC sekunder?NOT_HEALTHY
di kedua replika SYNC dan ASYNC.Jawaban:
Sayangnya, status sys.dm_hadr_avilities_replica bukan merupakan indikator kesehatan replika yang dapat diandalkan. Inilah item Connect di salah satu bug yang kami temui di mana DMV berhenti menyegarkan - catat dalam komentar yang mencatat log_send_queue_size di DMV sys.dm_hadr_database_replica_states menunjukkan 0 bahkan ketika ada data log yang akan dikirim.
Perhatikan bahwa item Connect ditandai sebagai Won't Fix. Trombon sedih.
sumber
sys.dm_hadr_availability_group_states.synchronization_health_desc
(yang saya mengerti melaporkan kesehatan seluruh kelompok) melaporkanNOT_HEALTHY
sekunder, tetapiHEALTHY
primer (3 replika). Documents menggambarkan col sebagai "rollup sinkronisasi_kesehatan semua replika ketersediaan dalam grup ketersediaan". Ini menunjukkan perbedaan dalam sistem tanpa melihat sys.dm_hadr_avilities_replica_states (yang mungkin berasal dari tempat data digulung).