Monitoraggio della replica a livello di programmazioneProgrammatically Monitor Replication

Monitoraggio replica è uno strumento grafico che consente di monitorare una topologia di replica.Replication Monitor is a graphical tool that allows you to monitor a replication topology. È possibile accedere agli stessi dati di monitoraggio a livello di programmazione utilizzando le stored procedure di replica Transact-SQLTransact-SQL o gli oggetti RMO (Replication Management Objects).You can access the same monitoring data programmatically by using Transact-SQLTransact-SQL replication stored procedures or replication management objects (RMO). Tali oggetti consentono di programmare le attività seguenti:These objects enable you to program the following tasks:

  • Monitoraggio dello stato dei server di pubblicazione, delle pubblicazioni e delle sottoscrizioni.Monitor the state of Publishers, publications, and subscriptions.

  • Monitoraggio delle sessioni dell'agente di merge in uno o più Sottoscrittori.Monitor Merge Agent sessions at one or more Subscribers.

  • Monitoraggio dei comandi transazionali in attesa di essere applicati a uno o più Sottoscrittori.Monitor transactional commands waiting to be applied at one or more Subscribers.

  • Definizione delle metriche di soglia che determinano la necessità di un intervento per una pubblicazione.Define the threshold metrics that determine when a publication requires intervention.

  • Monitoraggio dello stato dei token di traccia.Monitor the status of tracer tokens.

    Contenuto dell'argomento:In this topic:

    Transact-SQLTransact-SQL

    Oggetti RMO (Replication Management Objects)Replication Management Objects (RMO)

Transact-SQL Transact-SQL

Per monitorare i server di pubblicazione, le pubblicazioni e le sottoscrizioni dal database di distribuzioneTo monitor Publishers, publications, and subscriptions from the Distributor

  1. Nel database di distribuzione del server di distribuzione eseguire sp_replmonitorhelppublisher.At the Distributor on the distribution database, execute sp_replmonitorhelppublisher. Vengono restituite le informazioni di monitoraggio per tutti i server di pubblicazione che utilizzano il server di distribuzione.This returns monitoring information for all Publishers using this Distributor. Per limitare il set di risultati a un solo server di pubblicazione, specificare @publisher.To limit the result set to a single Publisher, specify @publisher.

  2. Nel database di distribuzione del server di distribuzione eseguire sp_replmonitorhelppublication.At the Distributor on the distribution database, execute sp_replmonitorhelppublication. Vengono restituite le informazioni di monitoraggio per tutte le pubblicazioni che utilizzano il server di distribuzione.This returns monitoring information for all publications using this Distributor. Per limitare il set di risultati a un solo server di pubblicazione, a una sola pubblicazione o a un solo database pubblicato, specificare rispettivamente @publisher, @publicationo @publisher_db.To limit the result set to a single Publisher, publication, or published database, specify @publisher, @publication, or @publisher_db, respectively.

  3. Nel database di distribuzione del server di distribuzione eseguire sp_replmonitorhelpsubscription.At the Distributor on the distribution database, execute sp_replmonitorhelpsubscription. Vengono restituite le informazioni di monitoraggio per tutte le sottoscrizioni che utilizzano il server di distribuzione.This returns monitoring information for all subscriptions using this Distributor. Per limitare il set di risultati alle sottoscrizioni appartenenti a un solo server di pubblicazione, a una sola pubblicazione o a un solo database pubblicato, specificare rispettivamente @publisher, @publicationo @publisher_db.To limit the result set to subscriptions belonging to a single Publisher, publication, or published database, specify @publisher, @publication, or @publisher_db, respectively.

Per monitorare i comandi transazionali in attesa di essere applicati al SottoscrittoreTo monitor transactional commands waiting to be applied at the Subscriber

  1. Nel database di distribuzione del server di distribuzione eseguire sp_replmonitorsubscriptionpendingcmds.At the Distributor on the distribution database, execute sp_replmonitorsubscriptionpendingcmds. Vengono restituite le informazioni di monitoraggio per tutti i comandi in sospeso per tutte le sottoscrizioni che utilizzano il server di distribuzione.This returns monitoring information for all commands pending for all subscriptions using this Distributor. Per limitare il set di risultati ai comandi in sospeso per le sottoscrizioni appartenenti a un solo server di pubblicazione, a un solo Sottoscrittore, a una sola pubblicazione o a un solo database pubblicato, specificare rispettivamente @publisher, @subscriber, @publicationo @publisher_db.To limit the result set to commands pending for subscriptions belonging to a single Publisher, Subscriber, publication, or published database, specify @publisher, @subscriber, @publication, or @publisher_db, respectively.

Per monitorare le modifiche di tipo merge in attesa di essere caricate o scaricateTo monitor merge changes waiting to be uploaded or downloaded

  1. Nel database di pubblicazione del server di pubblicazione eseguire sp_showpendingchanges.At the Publisher on the publication database, execute sp_showpendingchanges. Viene restituito un set di risultati in cui sono indicate le informazioni sulle modifiche in attesa di essere replicate nei Sottoscrittori.This returns a result set showing information on changes that are waiting to be replicated to Subscribers. Per limitare il set di risultati a modifiche che appartengono a una sola pubblicazione o a un solo un articolo, specificare rispettivamente @publication o @article.To limit the result set to changes that belong to a single publication or article, specify @publication or @article, respectively.

  2. Nel database di sottoscrizione del Sottoscrittore eseguire sp_showpendingchanges.At a Subscriber on the subscription database, execute sp_showpendingchanges. Viene restituito un set di risultati in cui sono indicate le informazioni sulle modifiche in attesa di essere replicate nel server di pubblicazione.This returns a result set showing information on changes that are waiting to be replicated to the Publisher. Per limitare il set di risultati a modifiche che appartengono a una sola pubblicazione o a un solo un articolo, specificare rispettivamente @publication o @article.To limit the result set to changes that belong to a single publication or article, specify @publication or @article, respectively.

Per monitorare sessioni dell'agente di mergeTo monitor Merge Agent sessions

  1. Nel database di distribuzione del server di distribuzione eseguire sp_replmonitorhelpmergesession.At the Distributor on the distribution database, execute sp_replmonitorhelpmergesession. Vengono restituite le informazioni di monitoraggio, Session_idincluso, relative a tutte le sessioni dell'agente di merge per tutte le sottoscrizioni che utilizzano il server di distribuzione.This returns monitoring information, including Session_id, on all Merge Agent sessions for all subscriptions using this Distributor. È anche possibile ottenere il valore Session_id eseguendo una query sulla tabella di sistema MSmerge_sessions .You can also obtain Session_id by querying the MSmerge_sessions system table.

  2. Nel database di distribuzione del server di distribuzione eseguire sp_replmonitorhelpmergesessiondetail.At the Distributor on the distribution database, execute sp_replmonitorhelpmergesessiondetail. Specificare il valore Session_id indicato al passaggio 1 per @session_id.Specify a Session_id value from step 1 for @session_id. Vengono visualizzate informazioni di monitoraggio dettagliate sulla sessione.This displays detailed monitor information about the session.

  3. Ripetere il passaggio 2 per ciascuna sessione desiderata.Repeat step 2 for each session of interest.

Per monitorare le sessioni dell'agente di merge per le sottoscrizioni pull dal SottoscrittoreTo monitor Merge Agent sessions for pull subscriptions from the Subscriber

  1. Nel database di sottoscrizione del Sottoscrittore eseguire sp_replmonitorhelpmergesession.At the Subscriber on the subscription database, execute sp_replmonitorhelpmergesession. Per una determinata sottoscrizione, specificare @publisher, @publicatione il nome del database di pubblicazione per @publisher_db.For a given subscription, specify @publisher, @publication, and the name of the publication database for @publisher_db. Vengono restituite le informazioni di monitoraggio per le ultime cinque sessioni dell'agente di merge della sottoscrizione.This returns monitoring information for the last five Merge Agent sessions for this subscription. Tenere presente il valore di Session_id per le sessioni desiderate nel set di risultati.Note the value of Session_id for sessions of interest in the result set.

  2. Nel database di sottoscrizione del Sottoscrittore eseguire sp_replmonitorhelpmergesession.At the Subscriber on the subscription database, execute sp_replmonitorhelpmergesessiondetail. Specificare il valore Session_id indicato al passaggio 1 per @session_id.Specify a Session_id value from step 1 for @session_id. Vengono visualizzate informazioni di monitoraggio dettagliate sulla sessione.This displays detailed monitoring information about the session.

  3. Ripetere il passaggio 2 per ciascuna sessione desiderata.Repeat step 2 for each session of interest.

Per visualizzare e modificare le misurazioni del valore soglia di monitoraggio per una pubblicazioneTo view and modify the monitor threshold metrics for a publication

  1. Nel database di distribuzione del server di distribuzione eseguire sp_replmonitorhelppublicationthresholds.At the Distributor on the distribution database, execute sp_replmonitorhelppublicationthresholds. Vengono restituiti i valore soglia di monitoraggio impostati per tutte le pubblicazioni che utilizzano il server di distribuzione.This returns the monitoring thresholds set for all publications using this Distributor. Per limitare il set di risultati ai valore soglia di monitoraggio delle pubblicazioni appartenenti a un solo server di pubblicazione, a un solo database pubblicato o a una sola pubblicazione, specificare rispettivamente @publisher, @publisher_dbo @publication.To limit the result set to monitor thresholds to publications belonging to a single Publisher or published database or to a single publication, specify @publisher, @publisher_db, or @publication, respectively. Tenere presente il valore di Metric_id per i valore soglia da modificare.Note the value of Metric_id for any thresholds that must be changed. Per altre informazioni, vedere Set Thresholds and Warnings in Replication Monitor.For more information, see Set Thresholds and Warnings in Replication Monitor.

  2. Nel database di distribuzione del server di distribuzione eseguire sp_replmonitorchangepublicationthreshold.At the Distributor on the distribution database, execute sp_replmonitorchangepublicationthreshold. Specificare i parametri seguenti, in base alle esigenze:Specify the following as needed:

    • Il valore Metric_id ottenuto nel passaggio 1 per @metric_id.The Metric_id value obtained in step 1 for @metric_id.

    • Un nuovo valore per la misurazione del valore soglia di monitoraggio per @value.A new value for the monitor threshold metric for @value.

    • Un valore pari a 1 per @shouldalert se è necessaria la registrazione di un avviso al raggiungimento del valore soglia specificato o un valore pari a 0 se la registrazione dell'avviso non è necessaria.A value of 1 for @shouldalert for an alert to be logged when this threshold is reached, or a value of 0 if an alert is not needed.

    • Un valore pari a 1 per @mode per abilitare la metrica di soglia di monitoraggio o un valore pari a 2 per disabilitarla.A value of 1 for @mode to enable the monitor threshold metric or a value of 2 to disable it.

Oggetti RMO (Replication Management Objects) Replication Management Objects (RMO)

Per monitorare una sottoscrizione di una pubblicazione di tipo merge nel SottoscrittoreTo monitor a subscription to a merge publication at the Subscriber

  1. Creare una connessione al Sottoscrittore tramite la classe ServerConnection.Create a connection to the Subscriber by using the ServerConnection class.

  2. Creare un'istanza della classe MergeSubscriberMonitor, impostare le proprietà Publisher, Publication, PublisherDB e SubscriberDB per la sottoscrizione e quindi impostare la proprietà ConnectionContext sull'oggetto ServerConnection creato nel passaggio 1.Create an instance of the MergeSubscriberMonitor class, and set the Publisher, Publication, PublisherDB, SubscriberDB properties for the subscription, and set the ConnectionContext property to the ServerConnection created in step 1.

  3. Chiamare uno dei metodi indicati di seguito per ottenere informazioni sulle sessioni dell'agente di merge per la sottoscrizione.Call one of the following methods to return information on Merge Agent sessions for this subscription:

    • GetSessionsSummary: restituisce una matrice di oggetti MergeSessionSummary con le informazioni sulle ultime cinque sessioni dell'agente di merge.GetSessionsSummary - returns an array of MergeSessionSummary objects with information on up to the last five Merge Agent sessions. Tenere presente il valore della proprietà SessionId per le sessioni desiderate.Note the SessionId value for any sessions of interest.

    • GetSessionsSummary: restituisce una matrice di oggetti MergeSessionSummary con le informazioni sulle sessioni dell'agente di merge eseguite durante il numero di ore passato come parametro hours (fino a un massimo di cinque sessioni).GetSessionsSummary - returns an array of MergeSessionSummary objects with information on Merge Agent sessions that have occurred during the past number of hours passed in as the hours parameter (up to the last five sessions). Tenere presente il valore della proprietà SessionId per le sessioni desiderate.Note the SessionId value for any sessions of interest.

    • GetLastSessionSummary: restituisce un oggetto MergeSessionSummary con le informazioni sull'ultima sessione dell'agente di merge.GetLastSessionSummary - returns a MergeSessionSummary object with information on the last Merge Agent session. Tenere presente il valore della proprietà SessionId per questa sessione.Note the SessionId value for this session.

    • GetSessionsSummaryDataSet: restituisce un oggetto DataSet con le informazioni sulle ultime cinque sessioni dell'agente di merge, una per ogni riga.GetSessionsSummaryDataSet - returns a DataSet object with information on up to the last five Merge Agent sessions, one in each row. Tenere presente il valore della colonna Session_id per le sessioni desiderate.Note the value of the Session_id column for any sessions of interest.

    • GetLastSessionSummaryDataRow: restituisce un oggetto DataRow con le informazioni sull'ultima sessione dell'agente di merge.GetLastSessionSummaryDataRow - returns a DataRow object with information on the last Merge Agent session. Tenere presente il valore della colonna Session_id per questa sessione.Note the value of the Session_id column for this session.

  4. (Facoltativo) Chiamare RefreshSessionSummary per aggiornare i dati relativi all'oggetto MergeSessionSummary passato come parametro mss oppure chiamare RefreshSessionSummary per aggiornare i dati nell'oggetto DataRow passato come parametro drRefresh.(Optional) Call RefreshSessionSummary to refresh the data for the MergeSessionSummary object passed as mss, or call RefreshSessionSummary to refresh the data in the DataRow object passed as drRefresh.

  5. Utilizzando l'ID sessione ottenuto nel passaggio 3, chiamare uno dei metodi indicati di seguito per ottenere informazioni sui dettagli di una determinata sessione.Using the session ID obtained in step 3, call one of the following methods to return information on the details of a particular session:

Per monitorare le proprietà di replica per tutte le pubblicazioni in un server di distribuzioneTo monitor replication properties for all publications at a Distributor

  1. Creare una connessione al database di distribuzione tramite la classe ServerConnection.Create a connection to the Distributor by using the ServerConnection class.

  2. Creare un'istanza della classe ReplicationMonitor.Create an instance of the ReplicationMonitor class.

  3. Impostare la proprietà ConnectionContext sull'oggetto ServerConnection creato nel passaggio 1.Set the ConnectionContext property to the ServerConnection created in step 1.

  4. Chiamare il metodo LoadProperties per recuperare le proprietà dell'oggetto.Call the LoadProperties method to get the properties of the object.

  5. Eseguire uno o più metodi riportati di seguito per ottenere le informazioni di replica per tutti i server di pubblicazione che utilizzano il server di distribuzione.Execute one or more of the following methods to return replication information for all Publishers that use this Distributor.

Per monitorare le proprietà della pubblicazione per un server di pubblicazione specifico nel server di distribuzioneTo monitor publication properties for a specific Publisher at the Distributor

  1. Creare una connessione al database di distribuzione tramite la classe ServerConnection.Create a connection to the Distributor by using the ServerConnection class.

  2. Recuperare un oggetto PublisherMonitor mediante uno dei modi indicati di seguito.Get a PublisherMonitor object in one of these ways.

  3. Eseguire uno o più metodi riportati di seguito per ottenere le informazioni di replica per tutte le pubblicazioni appartenenti al server di pubblicazione.Execute one or more of the following methods to return replication information for all publications that belong to this Publisher.

Per monitorare le proprietà di una pubblicazione specifica nel server di distribuzioneTo monitor properties for a specific publication at the Distributor

  1. Creare una connessione al database di distribuzione tramite la classe ServerConnection.Create a connection to the Distributor by using the ServerConnection class.

  2. Recuperare un oggetto PublicationMonitor mediante uno dei modi indicati di seguito.Get a PublicationMonitor object in one of these ways.

  3. Eseguire uno o più metodi riportati di seguito per ottenere informazioni su questa pubblicazione.Execute one or more of the following methods to return information about this publication.

Per monitorare i comandi transazionali in attesa di essere applicati al SottoscrittoreTo monitor transactional commands that are waiting to be applied at the Subscriber

  1. Creare una connessione al database di distribuzione tramite la classe ServerConnection.Create a connection to the Distributor by using the ServerConnection class.

  2. Recuperare un oggetto PublicationMonitor mediante uno dei modi indicati di seguito.Get a PublicationMonitor object in one of these ways.

  3. Eseguire il metodo TransPendingCommandInfo, che restituisce un oggetto PendingCommandInfo.Execute the TransPendingCommandInfo method, which returns a PendingCommandInfo object.

  4. Usare le proprietà dell'oggetto PendingCommandInfo per determinare il numero stimato di comandi in sospeso e il tempo necessario per completare il recapito di tali comandi.Use the properties of this PendingCommandInfo object to determine the estimated number of pending commands and the length of time it will take to complete the delivery of these commands.

Per impostare i valore soglia degli avvisi di monitoraggio per una pubblicazioneTo set the monitor warning thresholds for a publication

  1. Creare una connessione al database di distribuzione tramite la classe ServerConnection.Create a connection to the Distributor by using the ServerConnection class.

  2. Recuperare un oggetto PublicationMonitor mediante uno dei modi indicati di seguito.Get a PublicationMonitor object in one of these ways.

  3. Eseguire il metodo EnumMonitorThresholds.Execute the EnumMonitorThresholds method. Prendere nota delle impostazioni di soglia correnti nel valore restituito della classe ArrayList di oggetti MonitorThreshold.Note the current threshold settings in the returned ArrayList of MonitorThreshold objects.

  4. Eseguire il metodo ChangeMonitorThreshold.Execute the ChangeMonitorThreshold method. Passare i parametri indicati di seguito.Pass the following parameters:

    • metricID: un valore Int32 che rappresenta la misurazione del valore soglia di monitoraggio nella tabella riportata di seguito.metricID - an Int32 value that represents the monitoring threshold metric from the following table:

      ValoreValue DescrizioneDescription
      11 expiration : esegue il monitoraggio delle scadenze imminenti delle sottoscrizioni di pubblicazioni transazionali.expiration - monitors for imminent expiration of subscriptions to transactional publications.
      22 latency : esegue il monitoraggio delle prestazioni delle sottoscrizioni di pubblicazioni transazionali.latency - monitors for the performance of subscriptions to transactional publications.
      44 mergeexpiration : esegue il monitoraggio delle scadenze imminenti delle sottoscrizioni di pubblicazioni di tipo merge.mergeexpiration - monitors for imminent expiration of subscriptions to merge publications.
      55 mergeslowrunduration : esegue il monitoraggio della durata delle sincronizzazioni di tipo merge attraverso connessioni remote a larghezza di banda ridotta.mergeslowrunduration - monitors the duration of merge synchronizations over low-bandwidth (dialup) connections.
      66 mergefastrunduration : esegue il monitoraggio della durata delle sincronizzazioni di tipo merge attraverso connessioni LAN ad alta larghezza di banda.mergefastrunduration - monitors the duration of merge synchronizations over high-bandwidth (LAN) connections.
      77 mergefastrunspeed - esegue il monitoraggio della frequenza delle sincronizzazioni di tipo merge su connessioni tramite rete locale (LAN) a larghezza di banda elevata.mergefastrunspeed - monitors the synchronization rate of merge synchronizations over high-bandwidth (LAN) connections.
      88 mergeslowrunspeed : esegue il monitoraggio della velocità delle sincronizzazioni di tipo merge attraverso connessioni remote a larghezza di banda ridotta.mergeslowrunspeed - monitors the synchronization rate of merge synchronizations over low-bandwidth (dialup) connections.
    • enable: valore Boolean che indica se la metrica è abilitata per la pubblicazione.enable - Boolean value that indicates whether the metric is enabled for the publication.

    • thresholdValue : valore integer che imposta il valore soglia.thresholdValue - integer value that sets the threshold.

    • shouldAlert - Integer che indica se il valore soglia deve generare un avviso.shouldAlert - integer that indicates whether this threshold should generate an alert.