Pemantauan Pencerminan Basis Data (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 basis data yang dicerminkan selama sesi pencerminan untuk memverifikasi apakah data mengalir dan seberapa lancar alirannya. 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.

Tugas pemantauan pencerminan database, Tugas Pemantauan Pencerminan Database, berjalan 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 memulai pencerminan, Anda harus membuat tugas dengan menjalankan prosedur tersimpan.

Dalam Topik ini:

Pemantauan 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 yang dicerminkan selama sesi pencerminan untuk memverifikasi apakah data mengalir dan seberapa lancar alirannya.

Secara khusus, memantau database cermin memungkinkan Anda untuk:

  • Verifikasi bahwa pencerminan berfungsi.

    Status dasar mencakup mengetahui apakah kedua instance server sedang berjalan, apakah server-server tersebut saling terhubung, dan apakah log sedang dipindahkan dari server principal ke server mirror.

  • 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 menimbulkan penumpukan rekaman log yang belum dipulihkan, yang telah ditulis ke file log tetapi masih perlu dipulihkan ke basis data cermin.

  • Tentukan berapa banyak data yang hilang ketika instans server utama menjadi tidak tersedia selama mode performa tinggi.

    Anda dapat menentukan hilangnya data dengan melihat jumlah log transaksi yang belum terkirim (jika ada) dan interval waktu saat transaksi yang hilang dikomitkan pada principal.

  • 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 Batas Peringatan dan Pemberitahuan pada Metrik Performa Pencerminan (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 dari kedua alat tersebut, administrator sistem juga dapat memperbarui status pencerminan secara manual.

Catatan

Administrator sistem juga dapat mengonfigurasi dan melihat ambang batas peringatan untuk metrik performa utama. Untuk informasi lebih lanjut, lihat Menggunakan Ambang Batas Peringatan dan Peringatan pada Metrik Kinerja Mirroring (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 ditampilkan pada halaman Status, lihat Status yang Ditampilkan oleh Monitor Pencerminan Database, selanjutnya pada topik ini.

    Untuk pengantar tentang antarmuka Pemantau Pencerminan Database, lihat Gambaran Umum Pemantau 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 tugas yang secara berkala memperbarui informasi status untuk setiap basis data yang dicerminkan pada instans server.
    sp_dbmmonitorchangemonitoring Mengubah nilai parameter pemantauan pencerminan basis data.
    sp_dbmmonitorhelpmonitoring Mengembalikan periode pembaruan saat ini.
    sp_dbmmonitorresults Mengembalikan baris status untuk database yang dipantau dan memungkinkan Anda memilih apakah prosedur mengambil status terbaru terlebih dahulu.
    sp_dbmmonitordropmonitoring Menghentikan dan menghapus pekerjaan pemantauan pencerminan untuk semua database di instans server.

    Prosedur tersimpan sistem dbmmonitor dapat digunakan sebagai pelengkap untuk 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). Monitor Pencerminan Database, sebaliknya, memperbarui tabel secara otomatis setiap 30 detik. Untuk pembaruan ini, Database Mirroring Monitor Job dan panggilan Database Mirroring Monitor memanggil sp_dbmmonitorupdate.

Saat sp_dbmmonitorupdate dijalankan untuk pertama kalinya, prosedur ini membuat tabel status pencerminan basis data dan peran basis data tetap dbm_monitor di basis data 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 jika Database Mirroring Monitor saat ini sedang digunakan oleh anggota peran server tetap sysadmin, tabel status diperbarui secara otomatis hanya jika Database Mirroring Monitor Job ada dan SQL Server Agent sedang berjalan.

Pekerjaan Pemantauan Pencerminan Database

Pekerjaan pemantauan pencerminan database, Database Mirroring Monitor Job, berjalan secara independen dari Database Mirroring Monitor. Pekerjaan Monitor Pencerminan Database dibuat secara otomatis hanya jika SQL Server Management Studio digunakan untuk memulai sesi pencerminan. Jika perintah ALTER DATABASEdatabase_nameSET PARTNER selalu digunakan untuk memulai pencerminan, tugas tersebut hanya ada jika administrator sistem menjalankan prosedur tersimpan sp_dbmmonitoraddmonitoring.

Setelah Database Mirroring Monitor Job dibuat, dengan asumsi SQL Server Agent sedang berjalan, pekerjaan tersebut secara bawaan dijalankan sekali setiap menit. Tugas tersebut kemudian memanggil prosedur tersimpan sistem sp_dbmmonitorupdate.

SQL Server Agent secara bawaan memanggil Database Mirroring Monitor Job sekali setiap menit, dan tugas tersebut 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 Pemantau Pencerminan Basis Data

    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 Kinerja yang Ditampilkan oleh "Monitor Pencerminan Database" di bagian selanjutnya 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 Basis Data (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 saat ini dengan menggunakan baik Monitor Pencerminan Database maupun prosedur tersimpan sp_dbmmonitorresults. Tetapi pengguna ini tidak dapat memperbarui tabel status. Untuk mengetahui berapa lama status yang ditampilkan, pengguna dapat melihat waktu pada label Log utama (<waktu>) dan Log mirror (<waktu>) di halaman Status.

Anggota peran basis data tetap dbm_monitor bergantung pada Pekerjaan Monitor Pencerminan Basis Data 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 terjadi failover, mitra mungkin tampak berbagi peran yang sama—principal atau mirror—atau server principal saat ini mungkin ditampilkan sebagai mirror, sedangkan server mirror saat ini ditampilkan sebagai principal.

Menghapus Pekerjaan Pemantauan Pencerminan Database

Pekerjaan pemantauan pencerminan database, Database Mirroring Monitor Job, tetap ada hingga dihapus. Tugas pemantauan harus dikelola oleh administrator sistem. Untuk menghapus Pekerjaan Monitor Pencerminan Database, gunakan sp_dbmmonitordropmonitoring. Untuk informasi selengkapnya, lihat sp_dbmmonitordropmonitoring (Transact-SQL).

Status yang Ditampilkan oleh Monitor Pencerminan Basis Data

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 Monitor Pencerminan Database dan halaman Status, lihat Alat untuk Memantau Status Pencerminan Database di bagian 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:

    • Prinsipal

    • 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 belum terkirim

    Jumlah log yang menunggu dalam antrean kirim dalam kilobyte (KB).

  • Transaksi tertua yang belum dikirim

    Usia transaksi tertua yang belum terkirim dalam antrean pengiriman. 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

    Laju transaksi masuk yang dicatat ke dalam log utama dalam KB per detik. Untuk menentukan apakah pencerminan tertinggal, tetap sinkron, atau mengejar ketertinggalan, bandingkan nilai ini dengan nilai Perkiraan waktu untuk mengirim log.

Masuk ke Server Mirror

Halaman Status menampilkan informasi berikut tentang status log di server cermin pada waktu yang ditunjukkan:

  • Log yang belum dipulihkan

    Jumlah log yang menunggu dalam antrean redo dalam KB.

  • Waktu untuk memulihkan log (perkiraan)

    Perkiraan jumlah menit yang diperlukan agar log yang saat ini berada dalam antrean redo dapat diterapkan pada basis data mirror.

  • 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 besarnya overhead yang terjadi saat instans server utama menunggu instans server cermin menulis rekaman log transaksi ke dalam antrean redo.

  • Waktu untuk mengirim dan memulihkan semua log saat ini (diperkirakan)

    Perkiraan waktu yang diperlukan untuk mengirim semua log yang belum terkirim yang telah dikomitkan di server utama dan untuk memulihkan semua log yang saat ini ada dalam antrean redo. 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 basis data:

    • 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 Basis Data

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 dari 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 basis data memengaruhi kinerja pada server utama; Anda juga dapat memeriksa penghitung Antrean Pengulangan dan Antrean Pengiriman Log untuk melihat seberapa baik basis data cermin dapat mengimbangi basis data utama. Anda dapat memeriksa penghitung Log Byte Sent/sec untuk memantau jumlah log yang dikirim per detik.

Di Monitor Kinerja pada salah satu mitra, penghitung kinerja tersedia di objek kinerja pencerminan database (SQLServer:Database Mirroring). Untuk informasi selengkapnya, lihat SQL Server, Objek Pencerminan Database.

Untuk memulai monitor performa

Notifikasi Peristiwa Pencerminan Basis Data

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:

  • Perubahan Status Pencerminan Database kelas peristiwa

    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

Prosedur tersimpan

Lihat Juga

Pencerminan Basis Data (SQL Server)
Penyedia WMI untuk Konsep Peristiwa Server