Programově monitorujte replikaci

Platí pro:SQL ServerAzure SQL Managed Instance

Replikační monitor je grafický nástroj, který umožňuje sledovat replikační topologii. Ke stejným monitorovacím datům můžete přistupovat programovaně pomocí Transact-SQL uložených procedur pro replikaci nebo objektů pro správu replikace (RMO). Tyto objekty vám umožňují programovat následující úkoly:

  • Sledujte stav vydavatelů, publikací a předplatitelství.

  • Sledujte relace Merge Agent u jednoho nebo více odběratelů.

  • Sledujte transakční příkazy čekající na aplikaci u jednoho nebo více odběratelů.

  • Definujte prahové metriky, které určují, kdy publikace vyžaduje zásah.

  • Sledujte stav tracer tokenů.

Transact-SQL

Sledovat vydavatele, publikace a předplatné od distributora

  1. Na serveru Distributor v databázi distribuce spusťte sp_replmonitorhelppublisher. To vrací monitorovací informace pro všechny vydavatele používající tohoto distributora. Pro omezení výsledků na jednoho Publisher zadejte @publisher.

  2. U distributora v distribuční databázi proveďte sp_replmonitorhelppublication. To vrací monitorovací informace pro všechny publikace využívající tohoto distributora. Pro omezení množiny výsledků na jednu Publisher, publikaci nebo publikovanou databázi uveďte @publisher, @publication nebo @publisher_db.

  3. U distributora v distribuční databázi proveďte sp_replmonitorhelpsubscription. To vrací monitorovací informace pro všechna předplatná používající tohoto distributora. Chcete-li omezit sadu výsledků na odběry patřící jednomu vydavateli, jedné publikaci nebo jedné publikované databázi, zadejte postupně @publisher, @publication nebo @publisher_db.

Monitorovat transakční příkazy čekající na provedení u odběratele

  1. Na distributoru v distribuční databázi spusťte sp_replmonitorsubscriptionpendingcmds. Vrátí monitorovací informace o všech čekajících příkazech pro všechna předplatná využívající tohoto Distributora. Chcete-li omezit množinu výsledků na příkazy čekající pro předplatná náležející jednomu Publisheru, jednomu Subscriberu, jedné publikaci nebo jedné publikované databázi, zadejte postupně @publisher, @subscriber, @publication nebo @publisher_db.

Pro sledování změn při sloučení, které čekají na nahrání nebo stažení

  1. Na serveru Publisher v publikační databázi spusťte sp_showpendingchanges. Tím se vrátí sada výsledků zobrazující informace o změnách, které čekají na replikaci předplatitelům. Pro omezení množiny výsledků na změny, které patří k jedné publikaci nebo článku, uveďte @publication nebo @article.

  2. Na odběrateli v databázi odběru spusťte sp_showpendingchanges. Tímto se vrátí sada výsledků obsahující informace o změnách, které čekají na replikaci do publikátoru. Pro omezení množiny výsledků na změny, které patří k jedné publikaci nebo článku, uveďte @publication nebo @article.

Pro sledování relací Merge Agent

  1. Na Distributoru v distribuční databázi spusťte sp_replmonitorhelpmergesession. Vrací monitorovací informace včetně Session_id o všech relacích Merge Agenta pro všechna předplatná používající tohoto distributora. Můžete také získat Session_id dotazováním do tabulky MSmerge_sessions systému.

  2. Na serveru Distributor v distribuční databázi spusťte sp_replmonitorhelpmergesessiondetail. Zadejte hodnotu Session_id z kroku 1 pro @session_id. Zobrazuje podrobné informace o sezení z monitoru.

  3. Opakujte krok 2 pro každou zajímavou seanci.

Pro sledování relací Merge Agent kvůli stažení odběrů od Subscriber

  1. U odběratele v databázi předplatného spusťte sp_replmonitorhelpmergesession. Pro dané předplatné uveďte @publisher, @publication a název databáze publikací pro @publisher_db. To vrací monitorovací informace za posledních pět relací Merge Agent pro toto předplatné. Všimněte si hodnoty Session_id pro relace, které vás zajímají ve výsledné množině.

  2. Na odběrateli v databázi předplatného spusťte sp_replmonitorhelpmergesessiondetail. Zadejte hodnotu Session_id z kroku 1 pro @session_id. Zobrazuje podrobné monitorovací informace o relaci.

  3. Opakujte krok 2 pro každou zajímavou seanci.

Pro zobrazení a úpravu metrik monitorovacích prahových hodnot pro publikaci

  1. Na distributorovi v distribuční databázi spusťte sp_replmonitorhelppublicationthresholds. Tím se vrátí monitorovací prahy nastavené pro všechny publikace využívající tohoto distributora. Chcete-li omezit sadu výsledků pro prahové hodnoty monitoru na publikace patřící jednomu vydavateli nebo jedné publikované databázi, případně na jednu publikaci, zadejte @publisher, @publisher_db nebo @publication. Všimněte si hodnoty Metric_id pro jakékoli prahy, které je třeba změnit. Další informace naleznete v tématu Nastavení prahových hodnot a upozornění v nástroji Monitor replikace.

  2. Na Distributoru v distribuční databázi spusťte sp_replmonitorchangepublicationthreshold. Uveďte následující podle potřeby:

    • Hodnota Metric_id získaná v kroku 1 pro @metric_id.

    • Nová hodnota metriky prahové hodnoty monitorování pro @value.

    • Hodnota 1 pro @shouldalert pro upozornění, které má být zaznamenáno při dosažení tohoto prahu, nebo hodnota 0 , pokud upozornění není potřeba.

    • Hodnota 1 pro @mode pro povolení prahové metriky monitoru nebo hodnota 2 pro její deaktivaci.

Objekty správy replikace (RMO)

Chcete-li sledovat odběr publikace se slučováním u odběratele

  1. Vytvořte připojení k odběrateli pomocí ServerConnection třídy.

  2. Vytvořte instanci třídy MergeSubscriberMonitor, nastavte pro předplatné vlastnosti Publisher, Publication, PublisherDB a SubscriberDB a vlastnost ConnectionContext nastavte na ServerConnection vytvořenou v kroku 1.

  3. Zavolejte na jednu z následujících metod pro vrácení informací o relacích Merge Agent pro toto předplatné:

  4. (Volitelné) Volejte RefreshSessionSummary pro obnovení dat pro objekt předávaný MergeSessionSummary jako mss, nebo volejte RefreshSessionSummary pro obnovení dat v objektu předaném DataRow jako drRefresh.

  5. Pomocí ID relace získané v kroku 3 zavolejte jednu z následujících metod pro vrácení informací o detailech konkrétní relace:

Monitorování replikačních vlastností všech publikací u distributora

  1. Vytvořte připojení k distributoru pomocí ServerConnection třídy.

  2. Vytvořte instanci ReplicationMonitor třídy.

  3. Nastavte vlastnost ConnectionContext na ServerConnection, která byla vytvořena v kroku 1.

  4. Zavolejte metodu LoadProperties pro získání vlastností objektu.

  5. Provést jednu nebo více z následujících metod pro vrácení replikačních informací všem vydavatelům, kteří tohoto distributora používají.

Monitorovat vlastnosti publikace pro konkrétního vydavatele u distributora

  1. Vytvořte připojení k distributoru pomocí ServerConnection třídy.

  2. Získejte PublisherMonitor předmět jedním z těchto způsobů.

  3. Proveďte jednu nebo více z následujících metod pro vrácení replikačních informací pro všechny publikace, které patří tomuto Publisher.

Monitorování vlastností pro konkrétní publikaci u distributora

  1. Vytvořte připojení k distributoru pomocí ServerConnection třídy.

  2. Získejte PublicationMonitor předmět jedním z těchto způsobů.

  3. Použijte jeden nebo více z následujících metod, jak získat informace o této publikaci.

Monitorování transakčních příkazů, které čekají na aplikaci u odběratele

  1. Vytvořte připojení k distributoru pomocí ServerConnection třídy.

  2. Získejte PublicationMonitor předmět jedním z těchto způsobů.

  3. Spuskutěte metodu TransPendingCommandInfo , která vrátí PendingCommandInfo objekt.

  4. Použijte vlastnosti tohoto PendingCommandInfo objektu k určení odhadovaného počtu čekajících příkazů a délky trvání jejich doručení.

Nastavit prahové hodnoty upozornění pro monitorování publikace

  1. Vytvořte připojení k distributoru pomocí ServerConnection třídy.

  2. Získejte PublicationMonitor předmět jedním z těchto způsobů.

  3. Proveďte metodu EnumMonitorThresholds . Všimněte si aktuálního nastavení prahových hodnot ve vrácené sadě ArrayList objektů MonitorThreshold.

  4. Proveďte metodu ChangeMonitorThreshold . Splňte následující parametry:

    • metricID – hodnota Int32 , která představuje metriku monitorovacího prahu z následující tabulky:

      Value Description
      1 Expirace – Sleduje blížící se vypršení předplatného transakčních publikací.
      2 Latence – monitoruje výkon předplatného transakčních publikací.
      4 Mergeexpiration – monitoruje blížící se vypršení předplatného na sloučení publikací.
      5 mergeslowrunduration – sleduje dobu trvání slučovacích synchronizací přes připojení s nízkou šířkou pásma (dial-up).
      6 mergefastrunduration – sleduje dobu trvání synchronizací sloučení přes vysokorychlostní připojení (LAN).
      7 mergefastrunspeed – monitoruje synchronizační rychlost slučování přes vysokokapacitní (LAN) připojení.
      8 mergeslowrunspeed – monitoruje synchronizační rychlost slučování přes nízkopropustné (dialup) připojení.
    • povoleno - Boolean hodnota označující, zda je metrika u publikace povolena.

    • thresholdValue – celočíselná hodnota, která určuje prah.

    • shouldAlert – celé číslo, které určuje, zda by tento práh měl generovat upozornění.