Partager via


MSSQL_ENG018752

Détails du message

Nom du produit SQL Server
ID de l’événement 18752
Source de l’événement MSSQLSERVER
Composant Moteur de base de données SQL Server
Nom symbolique
Texte du message Un seul Agent de lecture du journal ou une seule procédure liée au journal (sp_repldone, sp_replcmds et sp_replshowcmds) peut se connecter à une base de données à la fois. Si vous avez exécuté une procédure liée au journal, supprimez la connexion à travers laquelle fut exécutée la procédure ou exécutez sp_replflush sur cette connexion avant de démarrer l'Agent de lecture du journal ou d'exécuter toute autre procédure liée au journal.

Explication

Plusieurs connexions tentent actuellement d'exécuter l'une des procédures suivantes : sp_repldone, sp_replcmdsou sp_replshowcmds. Les procédures stockées sp_repldone (Transact-SQL) et sp_replcmds (Transact-SQL) sont des procédures stockées utilisées par l’Agent de lecture du journal pour localiser et mettre à jour des informations sur les transactions répliquées dans une base de données publiée. La procédure stockée sp_replshowcmds (Transact-SQL) est utilisée pour résoudre certains types de problèmes liés à la réplication transactionnelle.

Cette erreur se produit dans les circonstances suivantes :

  • Si l'Agent de lecture du journal d'une base de données publiée est en cours d'exécution et si un deuxième Agent de lecture de journal tente de s'exécuter sur la même base de données, cette erreur est émise pour le second agent et apparaît dans l'historique de l'agent.

    Dans les situations où plusieurs agents sont impliqués, il est possible que l'un d'entre eux résulte d'un processus orphelin.

  • Si l'Agent de lecture du journal d'une base de données publiée est démarré et qu'un utilisateur exécute sp_repldone, sp_replcmdsou sp_replshowcmds sur la même base de données, cette erreur est émise dans l'application où la procédure stockée a été exécutée (par exemple sqlcmd).

  • Si aucun Agent de lecture de journal n'est en cours d'exécution sur une base de données publiée et si un utilisateur exécute sp_repldone, sp_replcmdsou sp_replshowcmds , puis omet de fermer la connexion sur laquelle la procédure a été exécutée, cette erreur est générée lorsque l'Agent de lecture de journal tente de se connecter à la base de données.

Action de l'utilisateur

La procédure suivante peut vous aider à résoudre ce problème. Si l'une des étapes permet à l'Agent de lecture de journal de démarrer sans erreur, il n'est pas nécessaire d'exécuter le reste de la procédure.

  • Vérifiez dans l'historique de l'Agent de lecture de journal s'il y a d'autres erreurs qui pourraient être cause de cette erreur. Pour obtenir des informations sur l’affichage de l’état de l’agent et des détails de l’erreur dans le moniteur de réplication, consultez Afficher des informations et effectuer des tâches à l’aide du moniteur de réplication.

  • Vérifiez la sortie de sp_who (Transact-SQL) pour les numéros d’identification de processus (SPID) spécifiques connectés à la base de données publiée. Fermez toute connexion susceptible d'avoir exécuté sp_repldone, sp_replcmdsou sp_replshowcmds.

  • Redémarrez l'Agent de lecture du journal. Pour plus d’informations, consultez Démarrer et arrêter un agent de réplication (SQL Server Management Studio).

  • Redémarrez le service de l'Agent SQL Server (mettez-le hors ligne ou en ligne dans un cluster) sur le serveur de distribution. S'il est possible qu'une tâche planifiée ait exécuté sp_repldone, sp_replcmdsou sp_replshowcmds à partir d'autres instances SQL Server , redémarrez également l'Agent SQL Server pour ces instances. Pour plus d’informations, consultez Démarrer, arrêter ou suspendre le service SQL Server Agent.

  • Exécutez sp_replflush (Transact-SQL) sur le serveur de publication sur la base de données de publication, puis redémarrez l’Agent de lecture du journal.

  • Si l'erreur continue de se produire, augmentez le facteur de journalisation de l'agent et spécifiez un fichier de sortie pour le journal. En fonction du contexte de l'erreur, cette action peut fournir des pistes conduisant à l'erreur et/ou à d'autres messages d'erreur.

Voir aussi

Informations de référence sur les erreurs et les événements (réplication)
Agent de lecture du journal des réplications