Bagikan melalui


sp_dbmmonitorresults (T-SQL)

Berlaku untuk: SQL Server

Mengembalikan baris status untuk database yang dipantau dari tabel status tempat riwayat pemantauan pencerminan database disimpan, dan memungkinkan Anda memilih apakah prosedur mendapatkan status terbaru sebelumnya.

Konvensi sintaks transact-SQL

Sintaks

sp_dbmmonitorresults
    [ @database_name = ] N'database_name'
    [ , [ @mode = ] mode ]
    [ , [ @update_table = ] update_table ]
[ ; ]

Argumen

[ @database_name = ] N'database_name'

Menentukan database yang akan mengembalikan status pencerminan. @database_name adalah sysname, tanpa default.

[ @mode = ] mode

Menentukan kuantitas baris yang dikembalikan. @mode int, dan bisa menjadi salah satu nilai ini.

Nilai Deskripsi
0 Baris terakhir
1 Baris dua jam terakhir
2 Baris empat jam terakhir
3 Baris delapan jam terakhir
4 Baris hari terakhir
5 Baris dua hari terakhir
6 100 baris terakhir
7 500 baris terakhir
8 1.000 baris terakhir
9 1.000.000 baris terakhir

[ @update_table = ] update_table

Menentukan bahwa sebelum mengembalikan hasil prosedur. @update_table int, dengan default 0.

  • 0 = Tidak memperbarui status untuk database. Hasilnya dihitung hanya menggunakan dua baris terakhir, yang usianya tergantung pada kapan tabel status disegarkan.

  • 1 = Memperbarui status untuk database dengan memanggil sp_dbmmonitorupdate sebelum menghitung hasil. Namun, jika tabel status diperbarui dalam 15 detik sebelumnya, atau pengguna bukan anggota peran server tetap sysadmin , sp_dbmmonitorresults berjalan tanpa memperbarui status.

Mengembalikan nilai kode

Tidak ada.

Tataan hasil

Mengembalikan jumlah baris status riwayat yang diminta untuk database yang ditentukan. Setiap baris berisi informasi berikut:

Nama kolom Jenis data Deskripsi
database_name nama sysname Nama database cermin.
role int Peran pencerminan instans server saat ini:

1 = Prinsipal
2 = Cermin
mirroring_state int Status database:

0 = Ditangguhkan
1 = Terputus
2 = Menyinkronkan
3 = Failover Tertunda
4 = Disinkronkan
witness_status int Status koneksi saksi dalam sesi pencerminan database database, dapat berupa:

0 = Tidak diketahui
1 = Tersambung
2 = Terputus
log_generation_rate int Jumlah log yang dihasilkan sejak pembaruan sebelumnya dari status pencerminan database ini dalam kilobyte/detik.
unsent_log int Ukuran log yang tidak terkirim dalam antrean kirim pada prinsipal dalam kilobyte.
send_rate int Kirim laju log dari prinsipal ke cermin dalam kilobyte/detik.
unrestored_log int Ukuran antrean pengulangan pada cermin dalam kilobyte.
recovery_rate int Laju ulang pada cermin dalam kilobyte/detik.
transaction_delay int Total penundaan untuk semua transaksi dalam milidetik.
transactions_per_sec int Jumlah transaksi yang terjadi per detik pada instans server utama.
average_delay int Penundaan rata-rata pada instans server utama untuk setiap transaksi karena pencerminan database. Dalam mode performa tinggi (yaitu, ketika SAFETY properti diatur ke OFF), nilai ini umumnya 0adalah .
time_recorded datetime Waktu di mana monitor pencerminan database merekam baris. Nilai ini adalah waktu jam sistem dari prinsipal.
time_behind datetime Perkiraan waktu jam sistem dari prinsipal tempat database cermin saat ini terjebak. Nilai ini hanya bermakna pada instans server utama.
local_time datetime Waktu jam sistem pada instans server lokal ketika baris ini diperbarui.

Keterangan

sp_dbmmonitorresults hanya dapat dijalankan dalam konteks msdb database.

Izin

Memerlukan keanggotaan dalam peran server tetap sysadmin atau dalam peran database tetap dbm_monitor dalam msdb database. Peran dbm_monitor memungkinkan anggotanya untuk melihat status pencerminan database, tetapi tidak memperbaruinya tetapi tidak menampilkan atau mengonfigurasi peristiwa pencerminan database.

Catatan

Pertama kali dijalankan sp_dbmmonitorupdate , ia membuat peran database tetap dbm_monitor dalam msdb database. Anggota peran server tetap sysadmin dapat menambahkan pengguna apa pun ke peran database tetap dbm_monitor .

Contoh

Contoh berikut mengembalikan baris yang direkam selama dua jam sebelumnya tanpa memperbarui status database.

USE msdb;
EXEC sp_dbmmonitorresults AdventureWorks2022, 2, 0;