Memantau Pencerminan Database (SQL Server)
Berlaku untuk: SQL Server
Bagian ini memperkenalkan Pemantauan Pencerminan Database dan prosedur tersimpan sistem sp_dbmmonitor , menjelaskan cara kerja pemantauan pencerminan database (termasuk Pekerjaan Pemantauan Pencerminan Database), dan meringkas informasi yang dapat Anda pantau tentang sesi pencerminan database. Selain itu, bagian ini memperkenalkan cara menentukan ambang batas peringatan untuk serangkaian peristiwa pencerminan database yang telah ditentukan sebelumnya dan cara menyiapkan pemberitahuan pada peristiwa pencerminan database apa pun.
Anda dapat memantau database cermin selama sesi pencerminan untuk memverifikasi apakah dan seberapa baik data mengalir. Untuk menyiapkan dan mengelola pemantauan untuk satu atau beberapa database cermin pada instans server, Anda dapat menggunakan Database Mirroring Monitor atau prosedur tersimpan sistem sp_dbmmonitor.
Pekerjaan pemantauan pencerminan database, Pekerjaan Pemantauan Pencerminan Database, beroperasi di latar belakang, secara independen dari Monitor Pencerminan Database. Agen SQL Server memanggil Pekerjaan Pemantauan Pencerminan Database secara berkala, defaultnya adalah sekali satu menit, dan pekerjaan memanggil prosedur tersimpan yang memperbarui status pencerminan. Jika Anda menggunakan SQL Server Management Studio untuk memulai sesi pencerminan, Pekerjaan Pemantauan Pencerminan Database dibuat secara otomatis. Namun, jika Anda hanya menggunakan ALTER DATABASE <database_name> SET PARTNER untuk mulai mencerminkan, Anda harus membuat pekerjaan dengan menjalankan prosedur tersimpan.
Dalam Topik ini:
Memantau Status Pencerminan
Untuk menyiapkan dan mengelola pemantauan untuk satu atau beberapa database cermin pada instans server, Anda dapat menggunakan Database Mirroring Monitor atau prosedur tersimpan sistem dbmmonitor . Anda dapat memantau database cermin selama sesi pencerminan untuk memverifikasi apakah dan seberapa baik data mengalir.
Secara khusus, memantau database cermin memungkinkan Anda untuk:
Verifikasi bahwa pencerminan berfungsi.
Status dasar mencakup mengetahui apakah dua instans server sudah habis, bahwa server terhubung, dan bahwa log sedang dipindahkan dari utama ke cermin.
Tentukan apakah database cermin mengikuti database utama.
Selama mode performa tinggi, server utama dapat mengembangkan backlog rekaman log yang tidak terkirim yang masih perlu dikirim dari server utama ke server cermin. Selain itu, dalam mode operasi apa pun, server cermin dapat mengembangkan backlog rekaman log yang tidak disimpan yang telah ditulis ke file log tetapi masih perlu dipulihkan pada database cermin.
Tentukan berapa banyak data yang hilang ketika instans server utama menjadi tidak tersedia selama mode performa tinggi.
Anda dapat menentukan kehilangan data dengan melihat jumlah log transaksi yang tidak terpakai (jika ada) dan interval waktu di mana transaksi yang hilang dilakukan pada prinsipal.
Bandingkan performa saat ini dengan performa sebelumnya.
Ketika masalah terjadi, administrator database dapat melihat riwayat performa pencerminan untuk membantu memahami status saat ini. Melihat riwayat dapat memungkinkan pengguna mendeteksi tren performa, mengidentifikasi pola masalah performa (seperti waktu hari ketika jaringan lambat atau jumlah perintah yang memasuki log sangat besar).
Memecahkan masalah penyebab berkurangnya aliran data antara mitra pencerminan.
Atur ambang peringatan pada metrik performa utama.
Jika baris status baru berisi nilai yang melebihi ambang batas, peristiwa informasi dikirim ke log peristiwa Windows. Administrator sistem kemudian dapat mengonfigurasi pemberitahuan secara manual berdasarkan peristiwa ini. Untuk informasi selengkapnya, lihat Menggunakan Ambang Peringatan dan Pemberitahuan pada Mencerminkan Metrik Performa (SQL Server).
Alat untuk Memantau Status Pencerminan Database
Status pencerminan dapat dipantau menggunakan Monitor Pencerminan Database atau prosedur tersimpan sistem sp_dbmmonitorresults . Alat-alat ini dapat digunakan untuk memantau pencerminan database pada database cermin apa pun pada instans server lokal oleh kedua administrator Sistem, yaitu, anggota peran server tetap sysadmin , dan pengguna yang telah ditambahkan ke peran database tetap dbm_monitor dalam database msdb oleh administrator sistem. Saat menggunakan salah satu alat, administrator sistem juga dapat menyegarkan status pencerminan secara manual.
Catatan
Administrator sistem juga dapat mengonfigurasi dan melihat ambang batas peringatan untuk metrik performa utama. Untuk informasi selengkapnya, lihat Menggunakan Ambang Peringatan dan Pemberitahuan pada Mencerminkan Metrik Performa (SQL Server).
Pemantauan Pencerminan Database
Database Mirroring Monitor adalah alat antarmuka pengguna grafis yang memungkinkan administrator sistem untuk melihat dan memperbarui status dan untuk mengonfigurasi ambang peringatan pada beberapa metrik performa utama. Monitor Pencerminan Database juga dapat digunakan oleh anggota peran database tetap dbm_monitor untuk melihat baris terbaru tabel status pencerminan, meskipun mereka tidak dapat memperbarui tabel status.
Monitor menampilkan status, termasuk metrik performa, untuk database yang dipilih pada halaman bertab Status . Konten halaman ini berasal dari instans server utama dan cermin. Halaman diisi secara asinkron karena status dikumpulkan melalui koneksi terpisah ke instans server utama dan cermin. Monitor mencoba memperbarui tabel status pada interval 30 detik. Pembaruan hanya berhasil jika tabel belum diperbarui dalam waktu 15 detik dan pengguna adalah anggota peran server tetap sysadmin . Untuk ringkasan informasi yang dilaporkan di halaman Status , lihat Status Ditampilkan oleh Monitor Pencerminan Database, nanti dalam topik ini.
Untuk pengenalan antarmuka Monitor Pencerminan Database, lihat Gambaran Umum Pemantauan Pencerminan Database. Untuk informasi tentang meluncurkan Monitor Pencerminan Database, lihat Mulai Pemantauan Pencerminan Database (SQL Server Management Studio).
Prosedur tersimpan sistem
Anda juga dapat mengambil atau memperbarui status saat ini dengan menjalankan prosedur tersimpan sistem sp_dbmmonitorresults . Prosedur tersimpan dbmmonitor lainnya memungkinkan Anda menyiapkan pemantauan, mengubah parameter pemantauan, melihat periode pembaruan saat ini, dan menghilangkan pemantauan pada instans server.
Tabel berikut memperkenalkan prosedur tersimpan untuk mengelola dan menggunakan pemantauan pencerminan database secara independen dari Monitor Pencerminan Database.
Prosedur Deskripsi sp_dbmmonitoraddmonitoring Membuat pekerjaan yang secara berkala memperbarui informasi status untuk setiap database yang dicerminkan pada instans server. sp_dbmmonitorchangemonitoring Mengubah nilai parameter pemantauan pencerminan database. sp_dbmmonitorhelpmonitoring Mengembalikan periode pembaruan saat ini. sp_dbmmonitorresults Mengembalikan baris status untuk database yang dipantau dan memungkinkan Anda memilih apakah prosedur mendapatkan status terbaru sebelumnya. sp_dbmmonitordropmonitoring Menghentikan dan menghapus pekerjaan pemantauan pencerminan untuk semua database pada instans server. Prosedur tersimpan sistem dbmmonitor dapat digunakan sebagai ajunct ke Monitor Pencerminan Database. Misalnya, bahkan jika pemantauan dikonfigurasi menggunakan sp_dbmmonitoraddmonitoring, Database Mirroring Monitor dapat digunakan untuk melihat status.
Cara Kerja Pemantauan
Bagian ini memperkenalkan tabel status pencerminan database, pekerjaan pemantauan pencerminan database dan monitor, bagaimana pengguna dapat memantau status pencerminan database, dan bagaimana pekerjaan pemantauan dapat dihilangkan.
Tabel Status Pencerminan Database
Status pencerminan database disimpan dalam tabel status pencerminan database internal yang tidak terdokumentasi dalam database msdb . Tabel status ini secara otomatis dibuat saat pertama kali status pencerminan diperbarui pada instans server.
Tabel status dapat diperbarui baik secara otomatis atau manual oleh administrator sistem, dengan interval pembaruan minimum 15 detik. Minimum 15 detik mencegah instans server kelebihan beban dengan permintaan status.
Tabel status diperbarui secara otomatis oleh Monitor Pencerminan Database dan pekerjaan pemantauan pencerminan database, jika berjalan. Pekerjaan Pemantauan Pencerminan Database memperbarui tabel satu menit sekali secara default (administrator sistem dapat menentukan periode pembaruan 1 hingga 120 menit). Pemantauan Pencerminan Database, sebaliknya, memperbarui tabel secara otomatis setiap 30 detik. Untuk pembaruan ini, Pekerjaan Pemantauan Pencerminan Database dan panggilan Monitor Pencerminan Database sp_dbmmonitorupdate.
Pertama kali sp_dbmmonitorupdate berjalan, ini membuat tabel status pencerminan database dan peran database tetap dbm_monitor dalam database msdb . sp_dbmmonitorupdate biasanya memperbarui status pencerminan dengan menyisipkan baris baru ke dalam tabel status untuk setiap database yang dicerminkan pada instans server; untuk informasi selengkapnya, lihat "Tabel Status Pencerminan Database," nanti dalam topik ini. Prosedur ini juga mengevaluasi metrik performa di baris baru dan memotong baris yang lebih lama dari periode retensi saat ini (defaultnya adalah 7 hari). Untuk informasi selengkapnya, lihat sp_dbmmonitorupdate (Transact-SQL).
Catatan
Kecuali Database Mirroring Monitor saat ini digunakan oleh anggota peran server tetap sysadmin , tabel status secara otomatis diperbarui hanya jika Pekerjaan Pemantauan Pencerminan Database ada dan SQL Server Agent sedang berjalan.
Pekerjaan Pemantauan Pencerminan Database
Pekerjaan pemantauan pencerminan database, Pekerjaan Pemantauan Pencerminan Database, beroperasi secara independen dari Database Mirroring Monitor. Pekerjaan Pemantauan Pencerminan Database dibuat secara otomatis hanya jika SQL Server Management Studio digunakan untuk memulai sesi pencerminan. Jika perintah ALTER DATABASE database_name SET PARTNER selalu digunakan untuk mulai mencerminkan, pekerjaan hanya ada jika administrator sistem menjalankan prosedur tersimpan sp_dbmmonitoraddmonitoring .
Setelah Pekerjaan Pemantauan Pencerminan Database dibuat, dengan asumsi bahwa SQL Server Agent sedang berjalan, pekerjaan dipanggil satu menit sekali, secara default. Pekerjaan kemudian memanggil prosedur tersimpan sistem sp_dbmmonitorupdate .
Agen SQL Server memanggil Pekerjaan Pemantauan Pencerminan Database sekali semenit, secara default, dan pekerjaan memanggil sp_dbmmonitorupdate untuk memperbarui tabel status. Administrator sistem dapat mengubah periode pembaruan dengan menggunakan prosedur tersimpan sistem sp_dbmmonitorchangemonitoring , dan mereka dapat melihat periode pembaruan saat ini dengan menggunakan prosedur tersimpan sistem sp_dbmmonitorchangemonitoring . Untuk informasi selengkapnya, lihat sp_dbmmonitoraddmonitoring (Transact-SQL) dan sp_dbmmonitorchangemonitoring (Transact-SQL).
Memantau Status Pencerminan Database (menurut Administrator Sistem)
Anggota peran server tetap sysadmin dapat melihat dan memperbarui tabel status
Menggunakan Monitor Pencerminan Database
Saat menggunakan Monitor Pencerminan Database, administrator sistem dapat me-refresh halaman Status , pohon navigasi, atau halaman Riwayat secara manual. Ini juga memperbarui tabel status, kecuali telah diperbarui dalam 15 detik sebelumnya.
Untuk melihat riwayat status pencerminan pada instans server tertentu, administrator sistem juga dapat mengklik tombol Riwayat untuk instans server (pada halaman Status ). Riwayat ditampilkan dalam kotak dialog Riwayat Pencerminan Database. Di sana, administrator sistem dapat melihat beberapa atau semua baris dalam tabel status instans server.
Untuk informasi tentang metrik halaman Status , lihat Metrik Performa yang Ditampilkan oleh "Monitor Pencerminan Database", nanti dalam topik ini.
Menggunakan sp_dbmmonitorresults
Administrator sistem dapat menggunakan prosedur tersimpan sistem sp_dbmmonitorresults untuk melihat dan, secara opsional, untuk memperbarui tabel status, jika belum diperbarui dalam 15 detik sebelumnya. Prosedur ini memanggil prosedur sp_dbmmonitorupdate dan mengembalikan satu atau beberapa baris riwayat, tergantung pada jumlah yang diminta dalam panggilan prosedur. Untuk informasi tentang status dalam kumpulan hasilnya, lihat sp_dbmmonitorresults (Transact-SQL).
Memantau Status Pencerminan Database (oleh Anggota dbm_monitor)
Seperti disebutkan, pertama kali sp_dbmmonitorupdate berjalan, ia membuat peran database tetap dbm_monitor dalam database msdb . Anggota peran database tetap dbm_monitor dapat melihat status pencerminan yang ada dengan menggunakan Monitor Pencerminan Database atau prosedur tersimpan sp_dbmmonitorresults . Tetapi pengguna ini tidak dapat memperbarui tabel status. Untuk mempelajari usia status yang ditampilkan, pengguna dapat melihat waktu di label Log utama (<waktu>) dan log Mirror (<waktu>) di halaman Status.
Anggota peran database tetap dbm_monitor bergantung pada Pekerjaan Pemantauan Pencerminan Database untuk memperbarui tabel status secara berkala. Jika pekerjaan tidak ada atau SQL Server Agent dihentikan, status menjadi semakin basi dan mungkin tidak lagi mencerminkan konfigurasi sesi pencerminan. Misalnya, setelah failover, mitra mungkin tampak berbagi peran utama atau cermin yang sama, atau server utama saat ini mungkin ditampilkan sebagai cermin, sementara server cermin saat ini ditampilkan sebagai utama.
Menghilangkan Pekerjaan Monitor Pencerminan Database
Pekerjaan pemantauan pencerminan database, Pekerjaan Pemantauan Pencerminan Database, tetap ada sampai dihilangkan. Tugas pemantauan harus dikelola oleh administrator sistem. Untuk menghilangkan Pekerjaan Pemantauan Pencerminan Database, gunakan sp_dbmmonitordropmonitoring. Untuk informasi selengkapnya, lihat sp_dbmmonitordropmonitoring (Transact-SQL).
Status Ditampilkan oleh Monitor Pencerminan Database
Halaman Status Monitor Pencerminan Database menjelaskan mitra, dan juga status sesi pencerminan. Status ini mencakup metrik performa seperti status log transaksi dan informasi lain yang dimaksudkan untuk membantu saat ini memperkirakan waktu yang diperlukan untuk menyelesaikan failover dan potensi kehilangan data, jika sesi tidak disinkronkan. Selain itu, halaman Status menampilkan status dan informasi tentang sesi pencerminan secara umum.
Catatan
Untuk pengenalan halaman Pemantauan dan Status Pencerminan Database, lihat Alat untuk Memantau Status Pencerminan Database, sebelumnya dalam topik ini.
Informasi yang diberikan untuk masing-masing dirangkum di bagian berikut.
Mitra
Halaman Status menampilkan informasi berikut untuk setiap mitra:
Instans server
Nama instans server yang statusnya ditampilkan di baris Status .
Peran saat ini
Peran instans server saat ini. Status yang mungkin adalah:
Utama
Cermin
Status pencerminan
Status yang mungkin adalah:
Tidak dikenal
Sinkronisasi
Disinkronisasikan
Ditangguhkan
Terputus
Koneksi saksi
Status koneksi saksi. Status yang mungkin adalah:
Tidak dikenal
Tersambung
Terputus.
Masuk ke Server Utama
Halaman Status menampilkan informasi berikut tentang status log di server utama pada waktu yang ditunjukkan:
Log tidak tersimpan
Jumlah log yang menunggu dalam antrean kirim dalam kilobyte (KB).
Transaksi tidak terlama
Usia transaksi tidak terkirim tertua dalam antrean kirim. Usia transaksi ini menunjukkan berapa menit transaksi belum dikirim ke instans server cermin. Nilai ini membantu mengukur potensi kehilangan data dalam hal waktu.
Waktu untuk mengirim log (perkiraan)
Perkiraan jumlah menit yang diperlukan instans server utama untuk mengirim log yang saat ini berada dalam antrean pengiriman ke instans server cermin berdasarkan laju pengiriman saat ini. Waktu aktual untuk mengirim log akan dipengaruhi oleh tingkat transaksi masuk, yang dapat bervariasi secara signifikan. Namun, nilai Waktu untuk mengirim log (perkiraan) dapat berguna untuk memperkirakan waktu yang diperlukan untuk failover manual.
Laju pengiriman saat ini
Laju di mana transaksi dikirim ke instans server cermin dalam KB per detik.
Tingkat transaksi baru saat ini
Tingkat di mana transaksi masuk dimasukkan ke dalam log utama di KB per detik. Untuk menentukan apakah pencerminan tertinggal, begadang, atau mengejar ketinggalan , bandingkan nilai ini dengan Perkiraan waktu untuk mengirim nilai log .
Masuk ke Server Mirror
Halaman Status menampilkan informasi berikut tentang status log di server cermin pada waktu yang ditunjukkan:
Log tidak tersimpan
Jumlah log yang menunggu dalam antrean pengulangan di KB.
Waktu untuk memulihkan log (perkiraan)
Perkiraan jumlah menit yang diperlukan untuk log yang saat ini berada dalam antrean pengulangan untuk diterapkan ke database cermin.
Laju pemulihan saat ini
Laju di mana transaksi sedang dipulihkan ke database cermin (dalam KB per detik).
Sesi Pencerminan
Selain itu, halaman Status menampilkan informasi berikut tentang sesi pencerminan:
Overhead penerapan pencerminan
Rata-rata penundaan per transaksi dalam milidetik (hanya relevan dalam mode keselamatan tinggi). Penundaan ini adalah jumlah overhead yang dikeluarkan sementara instans server utama menunggu instans server cermin untuk menulis catatan log transaksi ke dalam antrean pengulangan.
Waktu untuk mengirim dan memulihkan semua log saat ini (diperkirakan)
Perkiraan waktu yang diperlukan untuk mengirim semua log yang tidak terkirim yang telah dilakukan pada prinsipal dan untuk memulihkan semua log yang saat ini berada dalam antrean pengulangan. Perkiraan ini mungkin kurang dari jumlah nilai bidang Waktu untuk mengirim log (perkiraan) dan Waktu untuk memulihkan log (perkiraan), karena pengiriman dan pemulihan dapat beroperasi secara paralel.
Alamat saksi
Alamat jaringan instans server saksi. Untuk informasi tentang format alamat ini, lihat Menentukan Alamat Jaringan Server (Pencerminan Database).
Mode operasi
Mode operasi sesi pencerminan database:
Performa tinggi (asinkron)
Keamanan tinggi tanpa failover otomatis (sinkron)
Keamanan tinggi dengan failover otomatis (sinkron)
Sumber Informasi Tambahan Tentang Database Cermin
Selain menggunakan Pemantauan Pencerminan Database dan prosedur tersimpan dbmmonitor untuk memantau database cermin dan menyiapkan pemberitahuan pada variabel performa yang dipantau, SQL Server menyediakan tampilan katalog, penghitung kinerja, dan pemberitahuan peristiwa untuk pencerminan database.
Di bagian ini:
Metadata Pencerminan Database
Setiap sesi pencerminan database dijelaskan dalam metadata yang diekspos melalui katalog atau tampilan manajemen dinamis berikut:
sys.database_mirroring
Tampilan ini menampilkan metadata pencerminan database untuk setiap database cermin dalam instans server. Untuk informasi selengkapnya, lihat sys.database_mirroring (Transact-SQL).
sys.database_mirroring_endpoints
Tampilan katalog sys.database_mirroring_endpoints menampilkan informasi tentang titik akhir pencerminan database instans server. Untuk informasi selengkapnya, lihat sys.database_mirroring_endpoints (Transact-SQL).
sys.database_mirroring_witnesses
Tampilan katalog ini menampilkan metadata pencerminan database untuk setiap sesi di mana instans server adalah saksi. Untuk informasi selengkapnya, lihat sys.database_mirroring_witnesses (Transact-SQL).
sys.dm_db_mirroring_connections
Tampilan manajemen dinamis ini mengembalikan baris untuk setiap database yang mencerminkan koneksi jaringan.
Untuk informasi selengkapnya, lihat sys.dm_db_mirroring_connections (Transact-SQL).
Penghitung Kinerja Pencerminan Database
Penghitung kinerja memungkinkan Anda memantau performa pencerminan database. Misalnya, Anda dapat memeriksa penghitung Penundaan Transaksi untuk melihat apakah pencerminan database memengaruhi performa di server utama, Anda dapat memeriksa penghitung Antrean Pengulangan dan Antrean Pengiriman Log untuk melihat seberapa baik database cermin mengikuti database utama. Anda dapat memeriksa penghitung Log Byte Sent/sec untuk memantau jumlah log yang dikirim per detik.
Di Monitor Performa pada salah satu mitra, penghitung kinerja tersedia di objek performa pencerminan database (SQLServer:Pencerminan Database). Untuk informasi selengkapnya, lihat SQL Server, Objek Pencerminan Database.
Untuk memulai monitor performa
Pemberitahuan Peristiwa Pencerminan Database
Pemberitahuan peristiwa adalah jenis objek database khusus. Pemberitahuan peristiwa dijalankan sebagai respons terhadap berbagai pernyataan bahasa definisi data Transact-SQL (DDL) dan peristiwa SQL Trace dan mengirim informasi tentang peristiwa server dan database ke layanan Service Broker.
Peristiwa berikut ini tersedia untuk pencerminan database:
Kelas peristiwa Perubahan Status Pencerminan Database
Ini menunjukkan kapan status pencerminan database cermin berubah. Untuk informasi selengkapnya, lihat Database Mirroring State Change Event Class.
Mengaudit kelas peristiwa Login Pencerminan Database
Ini melaporkan pesan audit yang terkait dengan keamanan transportasi pencerminan database. Untuk informasi selengkapnya, lihat Audit Database Mirroring Login Event Class.
Tugas Terkait
Gunakan Ambang Peringatan dan Pemberitahuan pada Metrik Performa Pencerminan (SQL Server)
Mulai Pemantauan Pencerminan Database (SQL Server Management Studio)
Menampilkan Status Database Cermin (SQL Server Management Studio)
Prosedur tersimpan
Lihat Juga
Pencerminan Database (SQL Server)
Penyedia WMI untuk Konsep Peristiwa Server