Çoğaltmayı Program Aracılığıyla İzleme

Şunlar için geçerlidir: SQL Server Azure SQL Yönetilen Örneği

Replikasyon Monitörü, bir replikasyon topolojisini izlemenizi sağlayan grafiksel bir araçtır. Aynı izleme verilerine programlı olarak erişebilirsiniz, Transact-SQL replikasyon depolanmış prosedürler veya replikasyon yönetim nesneleri (RMO) kullanarak. Bu nesneler aşağıdaki görevleri programlamanızı sağlar:

  • Yayıncıların, yayınların ve aboneliklerin durumunu takip edin.

  • Bir veya daha fazla abone üzerinde Merge Agent oturumlarını izleyin.

  • Bir veya daha fazla aboneye uygulanmayı bekleyen işlem komutlarını izleyin.

  • Bir yayının müdahale gerektirdiği zamanı belirleyen eşik metriklerini tanımlayın.

  • İzleme tokenlarının durumunu izleyin.

Transact-SQL

Dağıtımcıdaki yayıncıları, yayınları ve abonelikleri izlemek

  1. Dağıtım veritabanındaki Dağıtıcıda sp_replmonitorhelppublisher çalıştırın. Bu, bu Dağıtıcıyı kullanan tüm Yayıncılar için izleme bilgilerini geri getirir. Sonuç ayarını tek bir Publisher ile sınırlamak için @publisher belirtin.

  2. Dağıtım veritabanındaki Dağıtıcıda sp_replmonitorhelppublication çalıştırın. Bu, bu Dağıtıcıyı kullanan tüm yayınlar için izleme bilgilerini geri döndürür. Sonuç setini tek bir Publisher, yayın veya yayımlanmış veritabanıyla sınırlamak için sırasıyla @publisher, @publication veya @publisher_db belirtin.

  3. Dağıtım veritabanındaki Dağıtıcıda sp_replmonitorhelpsubscription çalıştırın. Bu, bu Dağıtıcıyı kullanan tüm abonelikler için izleme bilgilerini geri döndürür. Sonuç setini tek bir Publisher, yayın veya yayımlanmış veritabanına ait aboneliklerle sınırlamak için sırasıyla @publisher, @publication veya @publisher_db belirtin.

Abonede uygulanmayı bekleyen işlem komutlarını izlemek için

  1. Dağıtım veritabanındaki Dağıtıcıda sp_replmonitorsubscriptionpendingcmds çalıştırın. Bu, bu Dağıtıcıyı kullanan tüm abonelikler için bekleyen tüm komutların izleme bilgilerini döndürür. Sonuç setini, tek bir Publisher, abone, yayın veya yayımlanmış veritabanına ait abonelikler için bekleyen komutlarla sınırlamak için sırasıyla @publisher, @subscriber, @publication veya @publisher_db belirtin.

Yüklemeyi veya indirilmeyi bekleyen birleştirme değişikliklerini izlemek için

  1. Yayın veritabanındaki Publisher'da sp_showpendingchanges çalıştırın. Bu, Abonelere aktarılmayı bekleyen değişiklikler hakkında bilgi veren bir sonuç seti döndürür. Sonuç kümesini tek bir yayına veya makaleye ait değişikliklerle sınırlamak için sırasıyla @publication veya @article belirtin.

  2. Abonelik veritabanındaki bir Abone üzerinde sp_showpendingchanges komutunu çalıştırın. Bu, Publisher'a çoğaltılması bekleyen değişikliklerle ilgili bilgileri gösteren bir sonuç seti döndürür. Sonuç kümesini tek bir yayına veya makaleye ait değişikliklerle sınırlamak için sırasıyla @publication veya @article belirtin.

Merge Agent oturumlarını izlemek için

  1. Dağıtım veritabanındaki Dağıtıcıda sp_replmonitorhelpmergesession çalıştırın. Bu, bu Dağıtıcıyı kullanan tüm abonelikler için tüm Merge Agent oturumlarında Session_id dahil izleme bilgilerini döndürür. Ayrıca MSmerge_sessions sistem tablosunu sorgulaarak Session_id elde edebilirsiniz.

  2. Dağıtım veritabanındaki Dağıtıcıda sp_replmonitorhelpmergesessiondetail çalıştırın. Adım 1'den @session_id için bir Session_id değeri belirtin. Bu, oturumla ilgili ayrıntılı monitör bilgilerini gösterir.

  3. İlgilendiğiniz her seans için 2. adımı tekrarlayın.

Aboneden gelen çekme abonelikleri için Birleştirme Aracısı oturumlarını izleme

  1. Abone veritabanında sp_replmonitorhelpmergesession çalıştırın. Belirli bir abonelik için @publisher, @publication ve @publisher_db için yayın veritabanının adını belirtin. Bu, bu abonelik için son beş Merge Agent oturumunun izleme bilgilerini döndürüyor. Sonuç kümesinde ilgi duyan oturumlar için Session_id değerine dikkat edin.

  2. Abonelik veritabanındaki Abone üzerinde sp_replmonitorhelpmergesessiondetail komutunu çalıştırın. Adım 1'den @session_id için bir Session_id değeri belirtin. Bu, oturumla ilgili ayrıntılı izleme bilgilerini gösterir.

  3. İlgilendiğiniz her seans için 2. adımı tekrarlayın.

Bir yayın için izleme eşik metriklerini görüntülemek ve değiştirmek için

  1. Dağıtım veritabanındaki Dağıtıcıda sp_replmonitorhelppublicationthresholds çalıştırın. Bu, bu Dağıtıcıyı kullanan tüm yayınlar için belirlenen izleme eşiklerini döndürür. Sonuç kümesini tek bir Publisher’a, yayımlanmış veritabanına veya tek bir yayına ait yayınlar için izleme eşikleriyle sınırlamak üzere sırasıyla @publisher, @publisher_db veya @publication belirtin. Değiştirilmesi gereken eşikler için Metric_id değerine dikkat edin. Daha fazla bilgi için bkz. Çoğaltma İzleyicisi'nde Eşikleri ve Uyarıları Ayarlama.

  2. Dağıtıcıda, dağıtım veritabanında sp_replmonitorchangepublicationthreshold komutunu çalıştırın. Gerekirse aşağıdakileri belirtin:

    • 1. adımda @metric_id için elde edilen Metric_id değeri.

    • @value için monitör eşik metriği için yeni bir değer.

    • Bu eşiğe ulaşıldığında bir uyarının kaydedilmesi için @shouldalert değerini 1 olarak ayarlayın; uyarı gerekmiyorsa 0 değerini kullanın.

    • İzleyici eşik metriğini etkinleştirmek için 1 değerinin @mode için ayarlanması veya devre dışı bırakmak için 2 değerinin ayarlanması.

Replikasyon Yönetim Nesneleri (RMO)

Abone sayfasında birleştirme yayınına abonelik izlemek

  1. sınıfını kullanarak ServerConnection Aboneye bir bağlantı oluşturun.

  2. MergeSubscriberMonitor sınıfının bir örneğini oluşturun ve abonelik için Publisher, Publication, PublisherDB ve SubscriberDB özelliklerini ayarlayın; ardından ConnectionContext özelliğini 1. adımda oluşturulan ServerConnection olarak ayarlayın.

  3. Bu abonelik için Merge Agent oturumları hakkında bilgi iade etmek üzere aşağıdaki yöntemlerden birini arayın:

    • GetSessionsSummary- son beş Merge Agent oturumuna kadar bilgi içeren bir MergeSessionSummary dizi nesne döndürür. İlgilendiğiniz oturumlar için SessionId değerini not edin.

    • GetSessionsSummary - hours parametresi olarak geçirilen geçmiş saat sayısı içinde gerçekleşen Merge Agent oturumları hakkında bilgi içeren MergeSessionSummary nesnelerinden oluşan bir dizi döndürür (son beş oturuma kadar). İlgilendiğiniz oturumlar için SessionId değerini not edin.

    • GetLastSessionSummary- son Merge Agent oturumu hakkında bilgi içeren bir MergeSessionSummary nesne döndürür. Bu oturum için SessionId değerini not edin.

    • GetSessionsSummaryDataSet - her satırda bir oturum olacak şekilde, en fazla son beş Merge Agent oturumuna ilişkin bilgiler içeren bir DataSet nesnesi döndürür. İlgilendiğiniz oturumlar için Session_id sütununun değerini not edin.

    • GetLastSessionSummaryDataRow- son Merge Agent oturumu hakkında bilgi içeren bir DataRow nesne döndürür. Bu oturum için Session_id sütununun değerine dikkat edin.

  4. (İsteğe bağlı) mss olarak iletilen MergeSessionSummary nesne için veriyi yenilemek için çağrı RefreshSessionSummary veya drRefresh olarak iletilen nesnedeki DataRow verileri yenilemek için çağrı.RefreshSessionSummary

  5. 3. adımda elde edilen oturum kimliğini kullanarak, belirli bir oturumun detayları hakkında bilgi iade etmek için aşağıdaki yöntemlerden birini çağırın:

Bir Dağıtıcıda tüm yayınlar için replikasyon özelliklerini izlemek için

  1. sınıfını kullanarak Dağıtımcı ile ServerConnection bağlantı oluşturun.

  2. ReplicationMonitor sınıfının bir örneğini oluşturun.

  3. ConnectionContext özelliğini, 1. adımda oluşturulan ServerConnection olarak ayarlayın.

  4. nesnesinin LoadProperties özelliklerini almak için yöntemini çağırın.

  5. Bu Dağıtıcıyı kullanan tüm Yayıncılar için replikasyon bilgisini döndürmek amacıyla aşağıdaki yöntemlerden birini veya birkaçını çalıştırın.

Dağıtıcıda belirli bir Publisher'ın yayın özelliklerini izlemek için

  1. sınıfını kullanarak Dağıtımcı ile ServerConnection bağlantı oluşturun.

  2. Bu yollardan biriyle bir PublisherMonitor nesnesi alın.

  3. Bu Publisher'a ait tüm yayınlar için tekrarlama bilgisini döndürmek için aşağıdaki yöntemlerden birini veya birkaçını çalıştırın.

Dağıtıcıda belirli bir yayının özelliklerini izlemek için

  1. sınıfını kullanarak Dağıtımcı ile ServerConnection bağlantı oluşturun.

  2. Bu yollardan biriyle bir PublicationMonitor nesnesi edinin.

  3. Bu yayınla ilgili bilgileri geri göndermek için aşağıdaki yöntemlerden birini veya birkaçını uygulayın.

Abonede uygulanmayı bekleyen işlem komutlarını izlemek için

  1. sınıfını kullanarak Dağıtımcı ile ServerConnection bağlantı oluşturun.

  2. PublicationMonitor nesnesini şu yollardan biriyle alın.

  3. TransPendingCommandInfo nesnesi döndüren PendingCommandInfo metodunu çalıştırın.

  4. Bu PendingCommandInfo nesnenin özelliklerini kullanarak bekleyen komutların tahmini sayısını ve bu komutların teslim edilmesinin ne kadar süreceğini belirleyin.

Bir yayın için izleme uyarı eşiklerini ayarlamak için

  1. sınıfını kullanarak Dağıtımcı ile ServerConnection bağlantı oluşturun.

  2. Bu yollardan biriyle bir PublicationMonitor nesnesi alın.

  3. Yöntemi EnumMonitorThresholds uygula. MonitorThreshold nesnelerinin döndürülen ArrayList içindeki mevcut eşik ayarlarını not edin.

  4. Yöntemi ChangeMonitorThreshold uygula. Aşağıdaki parametreleri geçin:

    • metricID - Int32 aşağıdaki tablodan izleme eşik metriğini temsil eden bir değer:

      Value Description
      1 Süre dolumu - işlemsel yayın aboneliklerinin yaklaşan süre dolumunu izler.
      2 gecikme - işlemsel yayın aboneliklerinin performansını izler.
      4 mergeexpiration - birleştirme yayınlarına yönelik aboneliklerin yakında sona ermesini izler.
      5 Mergeslowrunduration - Düşük bant genişliğine (dial-up) bağlantılar üzerinden birleştirme senkronizasyonlarının süresini izler.
      6 mergefastrunduration - yüksek bant bantlı (LAN) bağlantılar üzerinden birleştirme senkronizasyonlarının süresini izler.
      7 mergefastrunspeed - yüksek bant genişliğine (LAN) bağlantılar üzerinden birleşme senkronizasyonlarının senkronizasyon oranını izler.
      8 Mergeslowrunspeed - Düşük bant genişliğine (dial-up) bağlantılar üzerinden merge senkronizasyonlarının senkronizasyon oranını izler.
    • etkinleştir - Boolean değeri, bu değer yayın için metrikin etkin olup olmadığını gösterir.

    • thresholdValue - eşiği belirleyen tam sayı değeri.

    • shouldAlert - bu eşiğin uyarı üretip üretmemesi gerektiğini gösteren tam sayı.