Memantau Replikasi Secara Terprogram

Berlaku untuk:SQL ServerAzure 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:

T-SQL

Objek Manajemen Replikasi (RMO)

Transact-SQL

Untuk memantau Penerbit, publikasi, dan langganan dari Distributor

  1. 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.

  2. 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.

  3. 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

  1. 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

  1. 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.

  2. 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

  1. 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 .

  2. 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.

  3. Ulangi langkah 2 untuk setiap sesi yang menarik.

Untuk memantau sesi Agen Penggabungan untuk langganan penarikan dari Pelanggan

  1. 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.

  2. 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.

  3. Ulangi langkah 2 untuk setiap sesi yang menarik.

Untuk melihat dan mengubah metrik ambang monitor untuk publikasi

  1. 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.

  2. 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

  1. Buat koneksi ke Pelanggan dengan menggunakan ServerConnection kelas .

  2. Buat instans MergeSubscriberMonitor kelas, dan atur Publisherproperti , , PublicationPublisherDB, SubscriberDB untuk langganan, dan atur ConnectionContext properti ke yang ServerConnection dibuat di langkah 1.

  3. Panggil salah satu metode berikut untuk mengembalikan informasi tentang sesi Agen Penggabungan untuk langganan ini:

  4. (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.

  5. Dengan menggunakan ID sesi yang diperoleh di langkah 3, panggil salah satu metode berikut untuk mengembalikan informasi tentang detail sesi tertentu:

Untuk memantau properti replikasi untuk semua publikasi di Distributor

  1. Buat koneksi ke Distributor dengan menggunakan ServerConnection kelas .

  2. Membuat instans kelas ReplicationMonitor.

  3. Atur ConnectionContext properti ke yang ServerConnection dibuat di langkah 1.

  4. LoadProperties Panggil metode untuk mendapatkan properti objek.

  5. Jalankan satu atau beberapa metode berikut untuk mengembalikan informasi replikasi untuk semua Penerbit yang menggunakan Distributor ini.

Untuk memantau properti publikasi untuk Penerbit tertentu di Distributor

  1. Buat koneksi ke Distributor dengan menggunakan ServerConnection kelas .

  2. PublisherMonitor Dapatkan objek dengan salah satu cara ini.

  3. Jalankan satu atau beberapa metode berikut untuk mengembalikan informasi replikasi untuk semua publikasi milik Publisher ini.

Untuk memantau properti untuk publikasi tertentu di Distributor

  1. Buat koneksi ke Distributor dengan menggunakan ServerConnection kelas .

  2. PublicationMonitor Dapatkan objek dengan salah satu cara ini.

  3. Jalankan satu atau beberapa metode berikut untuk mengembalikan informasi tentang publikasi ini.

Untuk memantau perintah transaksi yang menunggu untuk diterapkan di Pelanggan

  1. Buat koneksi ke Distributor dengan menggunakan ServerConnection kelas .

  2. PublicationMonitor Dapatkan objek dengan salah satu cara ini.

  3. Jalankan TransPendingCommandInfo metode , yang mengembalikan PendingCommandInfo objek .

  4. 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

  1. Buat koneksi ke Distributor dengan menggunakan ServerConnection kelas .

  2. PublicationMonitor Dapatkan objek dengan salah satu cara ini.

  3. Jalankan EnumMonitorThresholds metode . Perhatikan pengaturan ambang batas saat ini dalam objek yang dikembalikan ArrayListMonitorThreshold .

  4. 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.