Procédure : analyser la réplication par programmation (programmation Transact-SQL de la réplication)

Le moniteur de réplication est un outil graphique permettant d'analyser une topologie de réplication. Vous pouvez accéder par programmation aux mêmes données d'analyse en utilisant les procédures stockées de réplication. Ces procédures stockées permettent de programmer les tâches suivantes :

  • Analyser l'état des serveurs de publication, des publications et des abonnements.

  • Analyser les sessions de l'Agent de fusion sur un ou plusieurs Abonnés.

  • Analyser les commandes transactionnelles en attente d'application sur un ou plusieurs Abonnés.

  • Définir la métrique de seuil qui détermine quand une publication nécessite une intervention.

Analyser les serveurs de publication, les publications et les abonnements du serveur de distribution.

  1. Sur le serveur de distribution de la base de données de distribution, exécutez sp_replmonitorhelppublisher. Les informations d'analyse pour tous les serveurs de publication utilisant ce serveur de distribution sont ainsi retournées. Pour limiter le jeu de résultats à un seul serveur de publication, spécifiez **@publisher**.

  2. Sur le serveur de distribution de la base de données de distribution, exécutez sp_replmonitorhelppublication. Les informations d'analyse pour tous les serveurs de publication utilisant ce serveur de distribution sont ainsi retournées. Pour limiter le jeu de résultats à un serveur de publication, une publication ou une base de données publiée, spécifiez respectivement **@publisher**, **@publication** ou **@publisher_db**.

  3. Sur le serveur de distribution de la base de données de distribution, exécutez sp_replmonitorhelpsubscription. Les informations d'analyse pour tous les abonnements utilisant ce serveur de distribution sont ainsi retournées. Pour limiter le jeu de résultats aux abonnements appartenant à un serveur de publication, une publication ou une base de données publiée, spécifiez respectivement **@publisher**, **@publication** ou **@publisher_db**.

Pour analyser les commandes transactionnelles en attente d'application sur l'Abonné

  • Sur le serveur de distribution de la base de données de distribution, exécutez sp_replmonitorsubscriptionpendingcmds. Les informations d'analyse pour toutes les commandes en attente de tous les abonnements utilisant ce serveur de distribution sont ainsi retournées. Pour limiter le jeu de résultats aux commandes en attente pour les abonnements appartenant à un serveur de publication, un Abonné, une publication ou une base de données publiée, spécifiez respectivement **@publisher**, **@subscriber**, **@publication**, or **@publisher_db**.

Pour analyser les modifications de fusion en attente de chargement ou de téléchargement

  1. Dans la base de données de publication du serveur de publication, exécutez sp_showpendingchanges. Retourne un jeu de résultats affichant des informations sur les modifications en attente de réplication sur les Abonnés. Pour limiter le jeu de résultats aux modifications qui appartiennent à une publication ou un article unique, spécifiez respectivement **@publication** ou **@article**.

  2. Sur un Abonné de la base de données d'abonnement, exécutez sp_showpendingchanges. Retourne un jeu de résultats affichant des informations sur les modifications en attente de réplication sur le serveur de publication. Pour limiter le jeu de résultats aux modifications qui appartiennent à une publication ou un article unique, spécifiez respectivement **@publication** ou **@article**.

Pour analyser les sessions de l'Agent de fusion

  1. Sur le serveur de distribution de la base de données de distribution, exécutez sp_replmonitorhelpmergesession. Cela retourne les informations d'analyse, y compris Session_id, sur toutes les sessions de l'Agent de fusion pour tous les abonnements utilisant ce serveur de distribution. Vous pouvez également obtenir Session_id en interrogeant la table système MSmerge_sessions.

  2. Sur le serveur de distribution de la base de données de distribution, exécutez sp_replmonitorhelpmergesessiondetail. Spécifiez une valeur Session_id de l'étape 1 pour **@session_id**. Les informations d'analyse détaillées sur la session sont ainsi affichées.

  3. Répétez l'étape 2 pour chaque session d'intérêt.

Pour analyser les sessions de l'Agent de fusion pour les abonnements par extraction de l'Abonné

  1. Sur l'Abonné de la base de données d'abonnement, exécutez sp_replmonitorhelpmergesession. Pour un abonnement donné, spécifiez **@publisher**, **@publication** et le nom de la base de données de publication pour **@publisher_db**. Cela retourne des informations d'analyse sur les cinq dernières sessions de l'Agent de fusion pour cet abonnement. Notez la valeur de la colonne Session_id pour toutes les sessions dignes d'intérêt dans le jeu de résultats.

  2. Sur l'Abonné de la base de données d'abonnement, exécutez sp_replmonitorhelpmergesessiondetail. Spécifiez une valeur Session_id de l'étape 1 pour **@session_id**. Les informations d'analyse détaillées sur la session sont ainsi affichées.

  3. Répétez l'étape 2 pour chaque session digne d'intérêt.

Pour afficher et modifier la métrique du seuil d'analyse pour une publication

  1. Sur le serveur de distribution de la base de données de distribution, exécutez sp_replmonitorhelppublicationthresholds. Les seuils d'analyse définis pour toutes les publications utilisant ce serveur de distribution sont ainsi retournées. Pour limiter le jeu de résultats aux seuils d'analyse des publications appartenant à un serveur de publication, une publication ou une base de données publiée, spécifiez respectivement **@publisher**, **@publisher_db** ou **@publication**. Notez la valeur de Metric_id pour les seuils qui doivent être changés. Pour plus d'informations, consultez Définition de seuils et d'avertissements dans le moniteur de réplication.

  2. Sur le serveur de distribution de la base de données de distribution, exécutez sp_replmonitorchangepublicationthreshold. Spécifiez les éléments suivants si nécessaire :

    • La valeur Metric_id obtenue dans l'étape 1 pour **@metric_id**.

    • Une nouvelle valeur pour le métrique du seuil d'analyse pour **@value**.

    • Une valeur de 1 pour **@shouldalert** pour une alerte à enregistrer lorsque ce seuil est atteint, ou une valeur de 0 si une alerte n'est pas nécessaire.

    • Une valeur de 1 pour **@mode** pour activer le métrique du seuil d'analyse ou une valeur de 2 pour le désactiver.