Memantau Replikasi Secara Terprogram
Berlaku untuk: SQL Server Azure SQL Managed Instance
Monitor Replikasi adalah alat grafis yang memungkinkan Anda memantau topologi replikasi. Anda dapat mengakses data pemantauan yang sama secara terprogram dengan menggunakan prosedur tersimpan replikasi Transact-SQL atau objek manajemen replikasi (RMO). Objek ini memungkinkan Anda untuk memprogram tugas-tugas berikut:
Pantau status Penerbit, publikasi, dan langganan.
Pantau sesi Agen Penggabungan di satu atau beberapa Pelanggan.
Pantau perintah transaksi yang menunggu untuk diterapkan pada satu atau beberapa Pelanggan.
Tentukan metrik ambang batas yang menentukan kapan publikasi memerlukan intervensi.
Pantau status token pelacak.
Dalam topik ini:
Objek Manajemen Replikasi (RMO)
Transact-SQL
Untuk memantau Penerbit, publikasi, dan langganan dari Distributor
Di Distributor pada database distribusi, jalankan sp_replmonitorhelppublisher. Ini mengembalikan informasi pemantauan untuk semua Penerbit menggunakan Distributor ini. Untuk membatasi hasil yang diatur ke satu Publisher, tentukan @publisher.
Di Distributor pada database distribusi, jalankan sp_replmonitorhelppublication. Ini mengembalikan informasi pemantauan untuk semua publikasi menggunakan Distributor ini. Untuk membatasi hasil yang diatur ke satu penerbit, publikasi, atau database yang diterbitkan, tentukan masing-masing @publisher, @publication, atau @publisher_db.
Di Distributor pada database distribusi, jalankan sp_replmonitorhelpsubscription. Ini mengembalikan informasi pemantauan untuk semua langganan menggunakan Distributor ini. Untuk membatasi hasil yang diatur ke langganan milik penerbit tunggal, publikasi, atau database yang diterbitkan, tentukan masing-masing @publisher, @publication, atau @publisher_db.
Untuk memantau perintah transaksi yang menunggu untuk diterapkan di Pelanggan
- Di Distributor pada database distribusi, jalankan sp_replmonitorsubscriptionpendingcmds. Ini mengembalikan informasi pemantauan untuk semua perintah yang tertunda untuk semua langganan menggunakan Distributor ini. Untuk membatasi hasil yang diatur ke perintah yang tertunda untuk langganan milik satu Penerbit, Pelanggan, publikasi, atau database yang diterbitkan, tentukan masing-masing @publisher, @subscriber, @publication, atau @publisher_db.
Untuk memantau perubahan penggabungan yang menunggu untuk diunggah atau diunduh
Di Publisher pada database publikasi, jalankan sp_showpendingchanges. Ini mengembalikan kumpulan hasil yang menunjukkan informasi tentang perubahan yang menunggu untuk direplikasi ke Pelanggan. Untuk membatasi hasil yang diatur ke perubahan yang termasuk dalam satu publikasi atau artikel, tentukan @publication atau @article.
Pada Pelanggan pada database langganan, jalankan sp_showpendingchanges. Ini mengembalikan kumpulan hasil yang memperlihatkan informasi tentang perubahan yang menunggu untuk direplikasi ke Publisher. Untuk membatasi hasil yang diatur ke perubahan yang termasuk dalam satu publikasi atau artikel, tentukan @publication atau @article.
Untuk memantau sesi Agen Penggabungan
Di Distributor pada database distribusi, jalankan sp_replmonitorhelpmergesession. Ini mengembalikan informasi pemantauan, termasuk Session_id, pada semua sesi Agen Penggabungan untuk semua langganan menggunakan Distributor ini. Anda juga bisa mendapatkan Session_id dengan mengkueri tabel sistem MSmerge_sessions .
Di Distributor pada database distribusi, jalankan sp_replmonitorhelpmergesessiondetail. Tentukan nilai Session_id dari langkah 1 untuk @session_id. Ini menampilkan informasi monitor terperinci tentang sesi.
Ulangi langkah 2 untuk setiap sesi yang menarik.
Untuk memantau sesi Agen Penggabungan untuk langganan penarikan dari Pelanggan
Di Pelanggan pada database langganan, jalankan sp_replmonitorhelpmergesession. Untuk langganan tertentu, tentukan @publisher, @publication, dan nama database publikasi untuk @publisher_db. Ini mengembalikan informasi pemantauan untuk lima sesi Agen Penggabungan terakhir untuk langganan ini. Perhatikan nilai Session_id untuk sesi yang menarik dalam tataan hasil.
Di Pelanggan pada database langganan, jalankan sp_replmonitorhelpmergesessiondetail. Tentukan nilai Session_id dari langkah 1 untuk @session_id. Ini menampilkan informasi pemantauan terperinci tentang sesi.
Ulangi langkah 2 untuk setiap sesi yang menarik.
Untuk melihat dan mengubah metrik ambang monitor untuk publikasi
Di Distributor pada database distribusi, jalankan sp_replmonitorhelppublicationthresholds. Ini mengembalikan ambang pemantauan yang ditetapkan untuk semua publikasi menggunakan Distributor ini. Untuk membatasi tataan hasil untuk memantau ambang batas ke publikasi milik penerbit tunggal atau database yang diterbitkan atau ke satu publikasi, tentukan masing-masing @publisher, @publisher_db, atau @publication. Perhatikan nilai Metric_id untuk ambang batas apa pun yang harus diubah. Untuk informasi selengkapnya, lihat Mengatur Ambang batas dan Peringatan di Monitor Replikasi.
Di Distributor pada database distribusi, jalankan sp_replmonitorchangepublicationthreshold. Tentukan hal berikut sesuai kebutuhan:
Nilai Metric_id diperoleh di langkah 1 untuk @metric_id.
Nilai baru untuk metrik ambang monitor untuk @value.
Nilai 1 untuk @shouldalert agar pemberitahuan dicatat saat ambang batas ini tercapai, atau nilai 0 jika pemberitahuan tidak diperlukan.
Nilai 1 untuk @mode untuk mengaktifkan metrik ambang monitor atau nilai 2 untuk menonaktifkannya.
Objek Manajemen Replikasi (RMO)
Untuk memantau langganan ke publikasi gabungan di Pelanggan
Buat koneksi ke Pelanggan dengan menggunakan ServerConnection kelas .
Buat instans MergeSubscriberMonitor kelas, dan atur Publisherproperti , , PublicationPublisherDB, SubscriberDB untuk langganan, dan atur ConnectionContext properti ke yang ServerConnection dibuat di langkah 1.
Panggil salah satu metode berikut untuk mengembalikan informasi tentang sesi Agen Penggabungan untuk langganan ini:
GetSessionsSummary - mengembalikan array MergeSessionSummary objek dengan informasi hingga lima sesi Agen Penggabungan terakhir. SessionId Perhatikan nilai untuk setiap sesi yang menarik.
GetSessionsSummary - mengembalikan array MergeSessionSummary objek dengan informasi tentang sesi Agen Penggabungan yang telah terjadi selama jumlah jam terakhir yang diteruskan sebagai parameter jam (hingga lima sesi terakhir). SessionId Perhatikan nilai untuk setiap sesi yang menarik.
GetLastSessionSummary - mengembalikan MergeSessionSummary objek dengan informasi tentang sesi Agen Penggabungan terakhir. SessionId Perhatikan nilai untuk sesi ini.
GetSessionsSummaryDataSet - mengembalikan DataSet objek dengan informasi hingga lima sesi Merge Agent terakhir, satu di setiap baris. Perhatikan nilai kolom Session_id untuk sesi yang menarik.
GetLastSessionSummaryDataRow - mengembalikan DataRow objek dengan informasi tentang sesi Agen Penggabungan terakhir. Perhatikan nilai kolom Session_id untuk sesi ini.
(Opsional) Panggil RefreshSessionSummary untuk menyegarkan data untuk objek yang MergeSessionSummary diteruskan sebagai mss, atau panggil RefreshSessionSummary untuk menyegarkan data dalam objek yang DataRow diteruskan sebagai drRefresh.
Dengan menggunakan ID sesi yang diperoleh di langkah 3, panggil salah satu metode berikut untuk mengembalikan informasi tentang detail sesi tertentu:
GetSessionDetails- mengembalikan array MergeSessionDetail objek untuk SessionId yang disediakan.
GetSessionDetailsDataSet- mengembalikan DataSet objek dengan informasi untuk SessionId yang ditentukan.
Untuk memantau properti replikasi untuk semua publikasi di Distributor
Buat koneksi ke Distributor dengan menggunakan ServerConnection kelas .
Membuat instans kelas ReplicationMonitor.
Atur ConnectionContext properti ke yang ServerConnection dibuat di langkah 1.
LoadProperties Panggil metode untuk mendapatkan properti objek.
Jalankan satu atau beberapa metode berikut untuk mengembalikan informasi replikasi untuk semua Penerbit yang menggunakan Distributor ini.
EnumDistributionAgents - mengembalikan DataSet objek yang berisi informasi tentang semua Agen Distribusi di Distributor ini.
EnumErrorRecords - mengembalikan DataSet objek yang berisi informasi tentang kesalahan yang disimpan di Distributor.
EnumLogReaderAgents - mengembalikan DataSet objek yang berisi informasi tentang semua Agen Pembaca Log di Distributor.
EnumMergeAgents - mengembalikan DataSet objek yang berisi informasi tentang semua Agen Penggabungan di Distributor.
EnumMiscellaneousAgents - mengembalikan DataSet objek yang berisi informasi tentang semua agen replikasi lainnya di Distributor.
EnumPublishers - mengembalikan DataSet objek yang berisi informasi tentang semua Penerbit di Distributor ini.
EnumPublishers2 - mengembalikan DataSet objek yang mengembalikan Penerbit yang menggunakan Distributor ini.
EnumQueueReaderAgents - mengembalikan DataSet objek yang berisi informasi tentang semua Agen Pembaca Antrean di Distributor.
EnumQueueReaderAgentSessionDetails - mengembalikan DataSet objek yang berisi detail tentang Agen dan sesi Pembaca Antrean yang ditentukan.
EnumQueueReaderAgentSessions - mengembalikan DataSet objek yang berisi informasi sesi tentang Agen Pembaca Antrean yang ditentukan.
EnumSnapshotAgents - mengembalikan DataSet objek yang berisi informasi tentang semua Agen Rekam Jepret di Distributor.
Untuk memantau properti publikasi untuk Penerbit tertentu di Distributor
Buat koneksi ke Distributor dengan menggunakan ServerConnection kelas .
PublisherMonitor Dapatkan objek dengan salah satu cara ini.
Membuat instans kelas PublisherMonitor. Atur Name properti untuk Publisher, dan atur ConnectionContext properti ke yang ServerConnection dibuat di langkah 1. LoadProperties Panggil metode untuk mendapatkan properti objek. Jika metode ini mengembalikan false, nama Publisher didefinisikan dengan tidak benar atau publikasi tidak ada.
Dari yang PublisherMonitorCollection diakses dengan properti PublisherMonitors objek yang ada ReplicationMonitor .
Jalankan satu atau beberapa metode berikut untuk mengembalikan informasi replikasi untuk semua publikasi milik Publisher ini.
EnumDistributionAgentSessionDetails - mengembalikan DataSet objek yang berisi detail tentang Agen Distribusi dan sesi yang ditentukan.
EnumDistributionAgentSessions - mengembalikan DataSet objek yang berisi informasi sesi tentang Agen Distribusi yang ditentukan.
EnumErrorRecords - mengembalikan DataSet objek yang berisi informasi rekaman kesalahan tentang kesalahan yang ditentukan.
EnumLogReaderAgentSessionDetails - mengembalikan DataSet objek yang berisi detail untuk Agen dan sesi Pembaca Log yang ditentukan.
EnumLogReaderAgentSessions - mengembalikan DataSet objek yang berisi informasi sesi untuk Agen Pembaca Log yang ditentukan.
EnumMergeAgentSessionDetails - mengembalikan DataSet objek yang berisi detail tentang Agen Penggabungan dan sesi yang ditentukan.
EnumMergeAgentSessionDetails2 - mengembalikan DataSet objek yang berisi detail tambahan tentang Agen Penggabungan dan sesi yang ditentukan.
EnumMergeAgentSessions - mengembalikan DataSet objek yang berisi informasi sesi untuk Agen Penggabungan yang ditentukan.
EnumMergeAgentSessions2 - mengembalikan DataSet objek yang berisi informasi sesi tambahan untuk Agen Penggabungan yang ditentukan.
EnumPublications - mengembalikan DataSet objek yang berisi informasi tentang semua publikasi di Distributor ini.
EnumPublications2 - mengembalikan DataSet objek yang berisi informasi tambahan tentang semua publikasi di Distributor ini.
EnumSnapshotAgentSessionDetails - mengembalikan DataSet objek yang berisi detail tentang Agen rekam jepret dan sesi yang ditentukan.
EnumSnapshotAgentSessions - mengembalikan DataSet objek yang berisi informasi sesi untuk Agen Rekam Jepret yang ditentukan.
EnumSubscriptions - mengembalikan DataSet objek yang berisi informasi tentang semua langganan ke publikasi di Distributor ini.
Untuk memantau properti untuk publikasi tertentu di Distributor
Buat koneksi ke Distributor dengan menggunakan ServerConnection kelas .
PublicationMonitor Dapatkan objek dengan salah satu cara ini.
Membuat instans kelas PublicationMonitor. Atur DistributionDBNameproperti , PublisherName, PublicationDBName, dan Name untuk publikasi, dan atur ConnectionContext properti ke yang ServerConnection dibuat di langkah 1. LoadProperties Panggil metode untuk mendapatkan properti objek. Jika metode ini mengembalikan false, properti publikasi didefinisikan dengan salah atau publikasi tidak ada.
Dari yang PublicationMonitorCollection diakses dengan properti PublicationMonitors objek yang ada PublisherMonitor .
Jalankan satu atau beberapa metode berikut untuk mengembalikan informasi tentang publikasi ini.
EnumErrorRecords - mengembalikan DataSet objek yang berisi rekaman kesalahan tentang kesalahan yang ditentukan.
EnumLogReaderAgent - mengembalikan DataSet objek yang berisi informasi tentang Agen Pembaca Log untuk publikasi ini.
EnumMonitorThresholds - mengembalikan DataSet objek yang berisi informasi tentang ambang batas peringatan monitor yang ditetapkan untuk publikasi ini.
EnumQueueReaderAgent - mengembalikan DataSet objek yang berisi informasi tentang Agen Pembaca Antrean yang digunakan oleh publikasi ini.
EnumSnapshotAgent - mengembalikan DataSet objek yang berisi informasi tentang Agen Rekam Jepret untuk publikasi ini.
EnumSubscriptions - mengembalikan DataSet objek yang berisi informasi tentang langganan ke publikasi ini.
EnumSubscriptions2 - mengembalikan DataSet objek yang berisi informasi tambahan tentang langganan ke publikasi ini berdasarkan yang disediakan SubscriptionResultOption.
EnumTracerTokenHistory - mengembalikan DataSet objek yang berisi informasi latensi untuk token tracer yang ditentukan.
EnumTracerTokens - mengembalikan DataSet objek yang berisi informasi tentang semua token pelacak yang dimasukkan ke dalam publikasi ini.
Untuk memantau perintah transaksi yang menunggu untuk diterapkan di Pelanggan
Buat koneksi ke Distributor dengan menggunakan ServerConnection kelas .
PublicationMonitor Dapatkan objek dengan salah satu cara ini.
Membuat instans kelas PublicationMonitor. Atur DistributionDBNameproperti , PublisherName, PublicationDBName, dan Name untuk publikasi, dan atur ConnectionContext properti ke yang ServerConnection dibuat di langkah 1. LoadProperties Panggil metode untuk mendapatkan properti objek. Jika metode ini mengembalikan false, properti publikasi didefinisikan dengan salah atau publikasi tidak ada.
Dari yang PublicationMonitorCollection diakses dengan properti PublicationMonitors objek yang ada PublisherMonitor .
Jalankan TransPendingCommandInfo metode , yang mengembalikan PendingCommandInfo objek .
Gunakan properti objek ini PendingCommandInfo untuk menentukan perkiraan jumlah perintah yang tertunda dan lamanya waktu yang diperlukan untuk menyelesaikan pengiriman perintah ini.
Untuk mengatur ambang batas peringatan pemantauan untuk publikasi
Buat koneksi ke Distributor dengan menggunakan ServerConnection kelas .
PublicationMonitor Dapatkan objek dengan salah satu cara ini.
Membuat instans kelas PublicationMonitor. Atur DistributionDBNameproperti , PublisherName, PublicationDBName, dan Name untuk publikasi, dan atur ConnectionContext properti ke yang ServerConnection dibuat di langkah 1. LoadProperties Panggil metode untuk mendapatkan properti objek. Jika metode ini mengembalikan false, properti publikasi didefinisikan dengan salah atau publikasi tidak ada.
Dari yang PublicationMonitorCollection diakses dengan properti PublicationMonitors objek yang ada PublisherMonitor .
Jalankan EnumMonitorThresholds metode . Perhatikan pengaturan ambang batas saat ini dalam objek yang dikembalikan ArrayList MonitorThreshold .
Jalankan ChangeMonitorThreshold metode . Berikan parameter berikut:
metricID - Int32 nilai yang mewakili metrik ambang pemantauan dari tabel berikut:
Nilai Description 1 kedaluwarsa - memantau kedaluwarsa langganan ke publikasi transaksional segera. 2 latensi - memantau performa langganan ke publikasi transaksi. 4 mergeexpiration - memantau kedaluwarsa langganan segera untuk menggabungkan publikasi. 5 mergeslowrunduration - memantau durasi sinkronisasi penggabungan melalui koneksi bandwidth rendah (dialup). 6 mergefastrunduration - memantau durasi sinkronisasi penggabungan melalui koneksi bandwidth tinggi (LAN). 7 mergefastrunspeed - memantau tingkat sinkronisasi sinkronisasi penggabungan melalui koneksi bandwidth tinggi (LAN). 8 mergeslowrunspeed - memantau tingkat sinkronisasi sinkronisasi penggabungan melalui koneksi bandwidth rendah (dialup). aktifkan - Boolean nilai yang menunjukkan apakah metrik diaktifkan untuk publikasi.
thresholdValue - nilai bilangan bulat yang mengatur ambang batas.
shouldAlert - bilangan bulat yang menunjukkan apakah ambang batas ini harus menghasilkan pemberitahuan.