Memantau Replikasi Secara Terprogram

Berlaku untuk: SQL Server (semua versi yang didukung) 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 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 yang menentukan kapan publikasi memerlukan intervensi.

  • Pantau status token pelacak.

Dalam topik ini:

Transact-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 database Penerbit, publikasi, atau yang diterbitkan tunggal, 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 tataan hasil ke langganan milik satu Penerbit, publikasi, atau database yang diterbitkan, tentukan @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 tataan hasil ke perintah yang tertunda untuk langganan milik masing-masing penerbit, Pelanggan, publikasi, atau database yang diterbitkan, tentukan @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 tataan hasil ke perubahan yang termasuk dalam satu publikasi atau artikel, tentukan masing-masing @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 tataan hasil ke perubahan yang termasuk dalam satu publikasi atau artikel, tentukan masing-masing @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 Merge Agent 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 pemantauan terperinci tentang sesi.

  3. Ulangi langkah 2 untuk setiap sesi yang diminati.

Untuk memantau sesi Agen Penggabungan untuk menarik langganan 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 diminati.

Untuk melihat dan mengubah metrik ambang batas 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 satu Penerbit 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 dan Peringatan di Monitor Replikasi.

  2. Di Distributor pada database distribusi, jalankan sp_replmonitorchangepublicationthreshold. Tentukan hal berikut sesuai kebutuhan:

    • Nilai Metric_id diperoleh pada langkah 1 untuk @metric_id.

    • Nilai baru untuk metrik ambang batas monitor untuk @value.

    • Nilai 1 untuk @shouldalert agar pemberitahuan dicatat ketika ambang batas ini tercapai, atau nilai 0 jika pemberitahuan tidak diperlukan.

    • Nilai 1 untuk @mode untuk mengaktifkan metrik ambang batas 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 merefresh 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. Dapatkan objek dengan PublisherMonitor 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. Dapatkan objek dengan PublicationMonitor 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. Dapatkan objek dengan PublicationMonitor 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. Dapatkan objek dengan PublicationMonitor salah satu cara ini.

  3. Jalankan EnumMonitorThresholds metode . Perhatikan pengaturan ambang 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 Deskripsi
      1 kedaluwarsa - memantau kedaluwarsa langganan yang segera ke publikasi transaksional.
      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).
    • Mengaktifkan - Boolean nilai yang menunjukkan apakah metrik diaktifkan untuk publikasi.

    • thresholdValue - nilai bilangan bulat yang menetapkan ambang batas.

    • shouldAlert - bilangan bulat yang menunjukkan apakah ambang batas ini harus menghasilkan pemberitahuan.