Jika Anda menggunakan grup ketersediaan SQL Server, salah satu aspek penting dari keberhasilan penyebaran adalah memantau sinkronisasi database replika sekunder dengan replika utama. Ada beberapa cara untuk memantau sinkronisasi replika di Grup Ketersediaan, dan postingan ini akan menunjukkan masing-masing cara tersebut serta menjelaskan kelebihan dan kekurangannya,
Salah satu cara termudah untuk memantau status Grup Ketersediaan, setiap server replika, dan database ketersediaan, adalah melalui dasbor bawaan di Management Studio. Namun, tata letak default dasbor tidak memberikan banyak detail, dan perlu disesuaikan untuk menampilkan informasi tambahan tentang server replika serta database ketersediaan. Kolom tambahan dapat ditambahkan ke tata letak melalui tautan Tambah/Hapus Kolom di dasbor, atau melalui menu konteks klik kanan pada salah satu tajuk kolom yang ada, seperti yang ditunjukkan di bawah ini:
Menyesuaikan Dasbor AG di SSMS
Untuk database ketersediaan, memantau Ukuran Antrian Pengiriman Log (KB), Kecepatan Pengiriman Log (KB/dtk), Perkiraan Kehilangan Data (waktu), Perkiraan Waktu Pemulihan (detik), dan Kinerja Sinkronisasi (detik) akan memberi Anda pemahaman yang lebih baik. tentang bagaimana data mengalir ke replika dan kesehatan database ketersediaan secara keseluruhan. Misalnya, pada tangkapan layar di bawah, saya telah memodifikasi konfigurasi jaringan VM untuk SQL03 sehingga memiliki latensi yang lebih tinggi dan throughput yang lebih rendah, yang memengaruhi sinkronisasi basis data:
Di sini kita dapat melihat bahwa ada hampir enam menit potensi kehilangan data untuk SQL03, dan 505 MB log tidak terkirim yang dikirim dengan kecepatan 7 MB/detik ke sekunder (yang, dalam hal ini, adalah sekunder asinkron) . Sedangkan SQL02 saat ini terjebak dan tidak memiliki kehilangan data sebagai sekunder sinkron dalam konfigurasi.
Alternatif untuk Dasbor Grup Ketersediaan adalah permintaan langsung DMV, yang merupakan tempat dasbor mengambil informasinya sebagai sumber. Kueri berikut menunjukkan status saat ini dan metrik sinkronisasi untuk setiap database dalam grup ketersediaan:
SELECT ar.replica_server_name, adc.database_name, ag.name AS ag_name, drs.is_local, drs.is_primary_replica, drs.synchronization_state_desc, drs.is_commit_participant, drs.synchronization_health_desc, drs.recovery_lsn, drs.truncation_lsn, drs.last_sent_lsn, drs.last_sent_time, drs.last_received_lsn, drs.last_received_time, drs.last_hardened_lsn, drs.last_hardened_time, drs.last_redone_lsn, drs.last_redone_time, drs.log_send_queue_size, drs.log_send_rate, drs.redo_queue_size, drs.redo_rate, drs.filestream_send_rate, drs.end_of_log_lsn, drs.last_commit_lsn, drs.last_commit_time FROM sys.dm_hadr_database_replica_states AS drs INNER JOIN sys.availability_databases_cluster AS adc ON drs.group_id = adc.group_id AND drs.group_database_id = adc.group_database_id INNER JOIN sys.availability_groups AS ag ON ag.group_id = drs.group_id INNER JOIN sys.availability_replicas AS ar ON drs.group_id = ar.group_id AND drs.replica_id = ar.replica_id ORDER BY ag.name, ar.replica_server_name, adc.database_name;
Dengan menanyakan DMV secara langsung di replika utama, Anda dapat dengan mudah mendapatkan informasi terbaru tanpa menunggu periode penyegaran dasbor di Management Studio. Ini telah berguna beberapa kali saat berkonsultasi dengan klien yang mengalami kegagalan tautan antara pusat data, atau di mana konektivitas terputus untuk pemeliharaan selama beberapa waktu, dan replika sekunder sedang dalam proses mengejar setelah koneksi dipulihkan. .
Alat asli terakhir untuk memantau sinkronisasi Grup Ketersediaan adalah Monitor Kinerja, menggunakan objek kinerja SQLServer:Database Replica. Tabel di bawah menunjukkan penghitung kinerja yang relevan dan deskripsinya dari Books Online (https://msdn.microsoft.com/en-us/library/ff878356(v=sql.110).aspx):
Nama Counter | Deskripsi |
---|---|
Byte File Diterima/dtk | Jumlah data FILESTREAM yang diterima oleh replika sekunder untuk database sekunder dalam detik terakhir. |
Byte Log Diterima/dtk | Jumlah catatan log yang diterima oleh replika sekunder untuk database dalam detik terakhir. |
Log tersisa untuk diurungkan | Jumlah kilobyte log in yang tersisa untuk menyelesaikan fase undo. |
Masukkan Antrian Kirim | Jumlah catatan log dalam file log database utama, dalam kilobyte, yang belum dikirim ke replika sekunder. Nilai ini dikirim ke replika sekunder dari replika utama. Ukuran antrian tidak termasuk file FILESTREAM yang dikirim ke sekunder. |
Antrian Pemulihan | Jumlah catatan log dalam file log replika sekunder yang belum dibuat ulang. |
Ulangi yang diblokir/dtk | Berapa kali utas redo diblokir pada kunci yang dipegang oleh pembaca database. |
Ulangi Byte yang Tersisa | Jumlah kilobyte log in yang tersisa untuk dikerjakan ulang untuk menyelesaikan fase pengembalian. |
Diulang Bytes/dtk | Jumlah catatan log yang dibuat ulang pada database sekunder dalam detik terakhir. |
Total Log yang perlu diurungkan | Total kilobyte log yang harus dibatalkan. |
Salah satu tantangan dan batasan penggunaan Performance Monitor untuk memantau lingkungan adalah bahwa objek hanya valid pada instance SQL Server yang menghosting replika sekunder. Ini berarti bahwa Anda harus menambahkan penghitung dari setiap replika sekunder ke Performance Monitor untuk mendapatkan tampilan lengkap tentang apa yang terjadi dengan semua database sekunder, di mana Dasbor AG di Management Studio, dan kueri DMV terhadap replika utama, menyediakan informasi tentang semua database sekunder di satu lokasi.
Sebagai alternatif dari fitur bawaan untuk memantau sinkronisasi Grup Ketersediaan, Anda juga dapat memanfaatkan alat pihak ketiga seperti SQL Sentry Performance Advisor, yang mencakup pemantauan Grup Ketersediaan sebagai fitur standar. Anda dapat membaca lebih lanjut tentang fitur ini di posting blog ini dari Greg Gonzalez yang pertama kali memperkenalkan fitur tersebut di versi 7.5 produk.
Dasbor Performance Advisor AG
Tab Replika di Performance Advisor memungkinkan setiap server replika sekunder diperluas untuk menampilkan database dan data sinkronisasi saat ini dengan mudah. Tata letak default WSFC Node/Group Matrix di bagian atas dasbor juga memberikan informasi kesehatan tentang status antrian pengiriman replika utama, status antrian ulangi replika sekunder, dan aliran data antara masing-masing server replika. Dalam contoh ini, kita dapat melihat bahwa antrian pengiriman log di primer saat ini mengirimkan sejumlah besar data dari SQL01 ke SQL03, berdasarkan lebar garis antara server, setelah masalah konektivitas antara SQL01 dan SQL03 diperbaiki di lingkungan. Bagan di sebelah kanan menunjukkan kecepatan transfer data dari SQL01, bersama dengan ukuran Antrian Pengiriman Log saat ini, karena itu adalah replika yang dipilih di sisi kiri. Mengeklik salah satu server replika lainnya di tata letak WSFC Node/Group Matrix juga akan mengubah diagram agar sesuai dengan metrik kinerja replika tertentu di sisi kanan.
Ada banyak cara untuk memantau kinerja sinkronisasi data antara server replika di Grup Ketersediaan di SQL Server. Dasbor Grup Ketersediaan bawaan di Management Studio berisi banyak informasi yang mudah diakses setelah Anda mengetahui cara menyesuaikan tata letak untuk menampilkan informasi terpenting di dasbor. Dimungkinkan juga untuk menggunakan DMV langsung dari server replika utama untuk memantau kinerja sinkronisasi data menggunakan Transact-SQL, dan alat pihak ketiga seperti SQL Sentry juga menyertakan pemantauan sinkronisasi data. Meskipun Performance Monitor dapat memberikan informasi yang sama ini, fakta bahwa penghitung kinerja hanya tersedia dari server replika sekunder membuatnya sedikit lebih bekerja untuk mendapatkan tampilan penuh dari seluruh lingkungan.