[Déconseillé] Un autre lecteur de journal est en train de répliquer la base de données

Microsoft.SQLServer.2008.AnotherLogReaderIsReplicatingDatabaseRule (Rule)

Knowledge Base article:

Résumé

Un autre lecteur de journal est en train de répliquer la base de données.

Causes

Plusieurs connexions tentent actuellement d'exécuter une des procédures suivantes : sp_repldone, sp_replcmds ou sp_replshowcmds. L'Agent de lecture du journal utilise les procédures stockées sp_repldone et sp_replcmds pour localiser et mettre à jour les informations relatives aux transactions répliquées dans une base de données publiée. La procédure stockée sp_replshowcmds est utilisée pour résoudre certains problèmes rencontrés avec la réplication transactionnelle.

Cette erreur se produit dans les circonstances suivantes :

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

Notez qu'en présence de plusieurs agents, l'un d'eux peut résulter d'une sorte de processus orphelin qui n'apparaît pas comme un agent ou un travail supplémentaire dans Management Studio.

Solutions

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.

Externe

ID d'événement SQL Server 18752

Paramètres remplaçables

Nom

Description

Valeur par défaut

Activé

Active ou désactive le flux de travail.

Oui

Priorité

Définit la priorité de l'alerte.

2

Gravité

Définit la gravité de l'alerte.

2

Element properties:

TargetMicrosoft.SQLServer.2008.DBEngine
CategoryEventCollection
EnabledTrue
Alert GenerateTrue
Alert SeverityError
Alert PriorityHigh
RemotableTrue
Alert Message
Un autre lecteur de journal est en train de répliquer la base de données
{0}

Member Modules:

ID Module Type TypeId RunAs 
DS DataSource Microsoft.SQLServer.2008.EventProvider Default
GenerateAlert WriteAction System.Health.GenerateAlert Default

Source Code:

<Rule ID="Microsoft.SQLServer.2008.AnotherLogReaderIsReplicatingDatabaseRule" Target="SQL2008Core!Microsoft.SQLServer.2008.DBEngine" Enabled="true" ConfirmDelivery="true">
<Category>EventCollection</Category>
<DataSources>
<DataSource ID="DS" TypeID="Microsoft.SQLServer.2008.EventProvider">
<ComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<PublisherName>$Target/Property[Type="SQL!Microsoft.SQLServer.DBEngine"]/ServiceName$</PublisherName>
<EventNumber>18752</EventNumber>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="GenerateAlert" TypeID="SystemHealth!System.Health.GenerateAlert">
<Priority>2</Priority>
<Severity>2</Severity>
<AlertMessageId>$MPElement[Name="Microsoft.SQLServer.2008.AnotherLogReaderIsReplicatingDatabaseRule.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>Event ID: $Data/EventDisplayNumber$. $Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue>$Data/LoggingComputer$</SuppressionValue>
<SuppressionValue>$Data/PublisherName$</SuppressionValue>
<SuppressionValue>$Data/EventDisplayNumber$</SuppressionValue>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>