Programövervakning av replikering

gäller för:SQL ServerAzure SQL Managed Instance

Replication Monitor är ett grafiskt verktyg som låter dig övervaka en replikationstopologi. Du kan komma åt samma övervakningsdata programmatiskt genom att använda Transact-SQL replikeringslagrade procedurer eller replikeringshanteringsobjekt (RMO). Dessa objekt gör det möjligt för dig att programmera följande uppgifter:

  • Övervaka tillståndet för förlag, publikationer och prenumerationer.

  • Övervaka Merge Agent-sessioner hos en eller flera prenumeranter.

  • Övervaka transaktionella kommandon som väntar på att tillämpas på en eller flera prenumeranter.

  • Definiera tröskelmåtten som avgör när en publikation kräver intervention.

  • Övervaka statusen för spårningstoken.

Transact-SQL

För att övervaka förlag, publikationer och prenumerationer från distributören

  1. På Distributören i distributionsdatabasen kör du sp_replmonitorhelppublisher. Detta ger övervakningsinformation för alla utgivare som använder denna distributör. För att begränsa resultatuppsättningen till en enda Publisher, ange @publisher.

  2. På distributören i distributionsdatabasen kör du sp_replmonitorhelppublication. Detta returnerar övervakningsinformation för alla publikationer som använder denna distributör. För att begränsa resultatuppsättningen till en enda Publisher, publikation eller publicerad databas, ange @publisher, @publication eller @publisher_db, respektive.

  3. På distributören i distributionsdatabasen, kör sp_replmonitorhelpsubscription. Detta returnerar övervakningsinformation för alla prenumerationer som använder denna distributör. För att begränsa resultatuppsättningen till prenumerationer som tillhör en enda Publisher, publikation eller publicerad databas, ange @publisher, @publication eller @publisher_db, respektive.

För att övervaka transaktionella kommandon som väntar på att tillämpas hos prenumeranten

  1. På Distributören i distributionsdatabasen kör du sp_replmonitorsubscriptionpendingcmds. Detta returnerar övervakningsinformation för alla kommandon som väntar för alla prenumerationer som använder denna distributör. För att begränsa resultatuppsättningen till kommandon som väntar på prenumerationer som tillhör en enskild Publisher, prenumerant, publikation eller publicerad databas, ange @publisher, @subscriber, @publication eller @publisher_db, respektive.

För att övervaka sammanslagningsändringar som väntar på att laddas upp eller laddas ner

  1. På Publisher på publiceringsdatabasen kör du sp_showpendingchanges. Detta returnerar en resultatuppsättning som visar information om ändringar som väntar på att replikeras till prenumeranter. För att begränsa resultatuppsättningen till ändringar som tillhör en enskild publikation eller artikel, specificera @publication respektive @article.

  2. På en prenumerant i prenumerationsdatabasen, kör sp_showpendingchanges. Detta ger en resultatuppsättning som visar information om ändringar som väntar på att replikeras till Publisher. För att begränsa resultatuppsättningen till ändringar som tillhör en enskild publikation eller artikel, specificera @publication respektive @article.

För att övervaka Merge Agent-sessioner

  1. På Distributorn i distributionsdatabasen kör du sp_replmonitorhelpmergesession. Detta returnerar övervakningsinformation, inklusive Session_id, för alla Merge Agent sessioner för alla prenumerationer som använder denna distributör. Du kan också få Session_id genom att söka i systemtabellen MSmerge_sessions .

  2. På Distributorn i distributionsdatabasen kör du sp_replmonitorhelpmergesessiondetail. Ange ett Session_id värde från steg 1 för @session_id. Detta visar detaljerad monitorinformation om sessionen.

  3. Upprepa steg 2 för varje intressant session.

För att övervaka Merge Agent-sessioner för att hämta prenumerationer från prenumeranten.

  1. På prenumeranten i prenumerationsdatabasen kör du sp_replmonitorhelpmergesession. För en given prenumeration, ange @publisher, @publication och namnet på publikationsdatabasen för @publisher_db. Detta returnerar övervakningsinformation för de senaste fem Merge Agent-sessionerna för denna prenumeration. Notera värdet av Session_id för intressanta sessioner i resultatuppsättningen.

  2. På prenumeranten i prenumerationsdatabasen kör du sp_replmonitorhelpmergesessiondetail. Ange ett Session_id värde från steg 1 för @session_id. Detta visar detaljerad övervakningsinformation om sessionen.

  3. Upprepa steg 2 för varje intressant session.

Så här visar och ändrar du tröskelvärdena för övervakning för en publikation

  1. Kör sp_replmonitorhelppublicationthresholds på distributören i distributionsdatabasen. Detta returnerar de övervakningströskelvärden som satts för alla publikationer som använder denna distributör. För att begränsa resultatuppsättningen till övervakningsgränser för publikationer som tillhör en enda Publisher eller publicerad databas eller till en enda publikation, specificera @publisher, @publisher_db eller @publication, respektive. Notera värdet av Metric_id för eventuella tröskelvärden som måste ändras. Mer information finns i Ange tröskelvärden och varningar i Replikeringsövervakaren.

  2. På distributören i distributionsdatabasen, kör sp_replmonitorchangepublicationthreshold. Specificera följande vid behov:

    • Värdet Metric_id som erhålls i steg 1 för @metric_id.

    • Ett nytt värde för monitortröskelmetriken för @value.

    • Ett värde på 1 för @shouldalert för att en varning ska loggas när denna tröskel uppnås, eller ett värde på 0 om en varning inte behövs.

    • Ett värde på 1 för @mode för att aktivera övervakarens tröskelvärdesmått eller ett värde på 2 för att inaktivera det.

Replikationshanteringsobjekt (RMO)

För att övervaka en prenumeration på en sammanslagningspublikation på Prenumeranten

  1. Skapa en anslutning till prenumeranten ServerConnection med hjälp av klassen .

  2. Skapa en instans av klassen MergeSubscriberMonitor, och ange egenskaperna Publication, PublisherDB, SubscriberDB och Publisher för prenumerationen, och ange egenskapen ConnectionContext till den ServerConnection som skapades i steg 1.

  3. Anropa en av följande metoder för att returnera information om Merge Agent-sessioner för denna prenumeration:

    • GetSessionsSummary- returnerar en array av MergeSessionSummary objekt med information om upp till de senaste fem Merge Agent-sessionerna. Notera SessionId värdet för eventuella intressanta sessioner.

    • GetSessionsSummary - returnerar en matris med MergeSessionSummary-objekt med information om Merge Agent-sessioner som har inträffat under det antal timmar som har angetts i parametern hours (upp till de fem senaste sessionerna). Notera SessionId värdet för eventuella intressanta sessioner.

    • GetLastSessionSummary- returnerar ett MergeSessionSummary objekt med information om den senaste Merge Agent-sessionen. Notera SessionId värdet för denna session.

    • GetSessionsSummaryDataSet- returnerar ett DataSet objekt med information om upp till de fem senaste Merge Agent-sessionerna, en i varje rad. Notera värdet på kolumnen Session_id för alla intressanta sessioner.

    • GetLastSessionSummaryDataRow- returnerar ett DataRow objekt med information om den senaste Merge Agent-sessionen. Notera värdet på kolumnen Session_id för denna session.

  4. (Valfritt) Anropa RefreshSessionSummary för att uppdatera datan för objektet MergeSessionSummary som skickas som mss, eller anropa RefreshSessionSummary för att uppdatera datan i objektet DataRow som skickas som drRefresh.

  5. Med att använda sessions-ID:t som erhållits i steg 3, anropa en av följande metoder för att returnera information om detaljerna för en viss session:

Att övervaka replikationsegenskaper för alla publikationer hos en distributör

  1. Skapa en anslutning till distributören med hjälp av klassen ServerConnection.

  2. Skapa en instans av ReplicationMonitor klassen.

  3. Sätt egenskapen ConnectionContext till det ServerConnection som skapats i steg 1.

  4. Anropa metoden LoadProperties för att hämta objektets egenskaper.

  5. Kör en eller flera av följande metoder för att returnera replikationsinformation för alla utgivare som använder denna distributör.

För att övervaka publikationsegenskaper för en specifik Publisher hos distributören

  1. Skapa en anslutning till distributören med hjälp av klassen ServerConnection.

  2. Få ett PublisherMonitor föremål på ett av dessa sätt.

  3. Kör en eller flera av följande metoder för att returnera replikationsinformation för alla publikationer som tillhör denna Publisher.

Att övervaka egenskaper för en specifik publikation hos distributören

  1. Skapa en anslutning till distributören med hjälp av klassen ServerConnection.

  2. Få ett PublicationMonitor föremål på ett av dessa sätt.

  3. Använd en eller flera av följande metoder för att returnera information om denna publikation.

För att övervaka transaktionella kommandon som väntar på att tillämpas hos prenumeranten

  1. Skapa en anslutning till distributören med hjälp av klassen ServerConnection.

  2. Få ett PublicationMonitor föremål på ett av dessa sätt.

  3. Kör metoden TransPendingCommandInfo , som returnerar ett PendingCommandInfo objekt.

  4. Använd egenskaperna för detta PendingCommandInfo objekt för att bestämma det uppskattade antalet väntande kommandon och hur lång tid det tar att slutföra leveransen av dessa kommandon.

Att ställa in övervakningsvarningströsklar för en publikation

  1. Skapa en anslutning till distributören med hjälp av klassen ServerConnection.

  2. Få ett PublicationMonitor föremål på ett av dessa sätt.

  3. Utför metoden EnumMonitorThresholds . Notera de aktuella tröskelinställningarna i de returnerade ArrayList av MonitorThreshold-objekt.

  4. Utför metoden ChangeMonitorThreshold . Passera följande parametrar:

    • metricID – ett Int32 värde som representerar övervakningströskelmetriken från följande tabell:

      Value Description
      1 Utgångsdatum – övervakar förestående utlöpning av prenumerationer på transaktionspublikationer.
      2 Latens – övervakar prestandan hos prenumerationer på transaktionspublikationer.
      4 mergeexpiration - övervakar prenumerationer på sammanfogningspublikationer som är nära att löpa ut.
      5 mergeslowrunduration – övervakar varaktigheten för sammanfogningssynkroniseringar via anslutningar med låg bandbredd (uppringda anslutningar).
      6 mergefastrunduration - övervakar varaktigheten av sammanslagningssynkroniseringar över högbandbreddsanslutningar (LAN).
      7 mergefastrunspeed – övervakar synkroniseringshastigheten för sammanslagningssynkroniseringar över högbandbreddsanslutningar (LAN).
      8 mergeslowrunspeed - övervakar synkroniseringshastigheten för kopplingssynkroniseringar via lågbandbreddsanslutningar (uppringda anslutningar).
    • Enable - Boolean värde som indikerar om metriken är aktiverad för publikationen.

    • ThresholdValue - heltalsvärde som sätter tröskeln.

    • shouldAlert – heltal som anger om denna tröskel ska generera en varning.