L'instantané initial de la publication n'est pas encore disponible

Microsoft.SQLServer.2008.InitialSnapshotForPublicationIsNotYetAvailableRule (Rule)

Knowledge Base article:

Résumé

SQL Server a consigné une erreur lors de l'attente de l'événement d'accès au cache de l'article.

Causes

L'erreur ci-dessus se produit dans les cas suivants.

Réplication de fusion :

Vous obtiendrez cette erreur après avoir créé ou réinitialisé un abonnement de fusion et démarré l'Agent de fusion avant d'avoir démarré l'Agent d'instantané ou avant la fin d'exécution de ce dernier.

Réplication transactionnelle :

Vous avez créé ou réinitialisé un abonnement transactionnel créé à l'aide de l'option Oui, initialiser le schéma et les données et démarré l'Agent de distribution avant d'avoir démarré l'Agent d'instantané ou avant la fin d'exécution de ce dernier. Vous n'obtiendrez cette erreur que si l'abonnement est le seul abonnement associé à l'Agent de distribution ou si tous les abonnements associés à l'Agent de distribution sont dans l'état indiqué ci-dessus. Dès qu'un instantané est disponible pour l'un des abonnements associés à l'Agent de distribution, le message de l'historique de l'agent indiquera « Aucune transaction répliquée n'est disponible » ou le nombre de transactions et de commandes livrées aux autres abonnements associés à cet agent. Si une publication transactionnelle ne contient qu'un article et que celui-ci répond aux critères décrits ci-dessus, l'erreur 21076 « L'instantané initial de l'article n'est pas encore disponible » sera alors générée.

Solutions

Si l'Agent d'instantané associé n'a pas été démarré depuis la création de l'abonnement, ou s'il n'a pas été démarré depuis la dernière fois que vous avez choisi de réinitialiser l'abonnement, vous devrez démarrer l'Agent d'instantané et attendre qu'il se termine avant de démarrer l'Agent de fusion ou l'Agent de distribution.

Si l'Agent d'instantané ne se termine pas, recherchez les erreurs dans son historique et résolvez-les. Si nécessaire, vous pouvez ajouter un journal à l'Agent d'instantané afin de voir si vous pouvez obtenir des détails complémentaires pour les erreurs reçues.

Externe

Procédure d'activation des agents de réplication dans SQL Server en vue de la journalisation dans des fichiers de sortie

Element properties:

TargetMicrosoft.SQLServer.2008.DBEngine
CategoryEventCollection
EnabledTrue
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
RemotableTrue
Alert Message
L'instantané initial de la publication n'est pas encore disponible
{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.InitialSnapshotForPublicationIsNotYetAvailableRule" 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>21075</EventNumber>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="GenerateAlert" TypeID="SystemHealth!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>1</Severity>
<AlertMessageId>$MPElement[Name="Microsoft.SQLServer.2008.InitialSnapshotForPublicationIsNotYetAvailableRule.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue>$Data/LoggingComputer$</SuppressionValue>
<SuppressionValue>$Data/PublisherName$</SuppressionValue>
<SuppressionValue>$Data/EventDisplayNumber$</SuppressionValue>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>