Lo snapshot iniziale per la pubblicazione non è ancora disponibile

Microsoft.SQLServer.2008.InitialSnapshotForPublicationIsNotYetAvailableRule (Rule)

Knowledge Base article:

Riepilogo

Errore di SQL Server registrato durante l'attesa dell'evento di accesso alla cache degli articoli.

Cause

L'errore precedente viene visualizzato nelle circostanze descritte di seguito.

Per la replica di tipo merge:

L'errore viene visualizzato se è stata creata o reinizializzata una sottoscrizione di tipo merge e l'agente di merge è stato avviato prima dell'avvio o del completamento dell'agente snapshot.

Per la replica transazionale:

È stata creata o reinizializzata una sottoscrizione transazionale creata con l'opzione Inizializza schema e dati e l'agente di distribuzione è stato avviato prima dell'avvio o del completamento dell'agente snapshot. L'errore viene visualizzato solo se la sottoscrizione è l'unica sottoscrizione associata all'agente di distribuzione o se tutte le sottoscrizioni associate all'agente di distribuzione si trovano nello stato descritto sopra. Non appena una delle sottoscrizioni associate all'agente di distribuzione dispone di uno snapshot, nel messaggio relativo alla cronologia dell'agente sarà invece indicato "Nessuna transazione replicata disponibile" o verrà riportato il numero di transazioni e comandi recapitati per le altre sottoscrizioni associate all'agente. Se è presente un solo articolo in una pubblicazione transazionale e tale articolo soddisfa i criteri descritti in precedenza, verrà visualizzato l'errore 21076, "Lo snapshot iniziale per l'articolo non è ancora disponibile".

Soluzioni

Se l'agente snapshot associato non è stato avviato dal momento della creazione della sottoscrizione o dal momento in cui si è scelto di reinizializzare la sottoscrizione, sarà necessario avviare l'agente snapshot e attenderne il completamento prima di avviare l'agente di merge o l'agente di distribuzione.

Se l'agente snapshot non viene completato, controllarne la cronologia per individuare eventuali errori e risolverli. Se necessario, è possibile aggiungere un log all'agente snapshot per tentare di ottenere informazioni più dettagliate sugli errori visualizzati.

Risorse esterne

Come abilitare gli agenti di replica per registrare nei file di output in SQL Server

Parametri di cui è possibile eseguire l'override

Nome

Descrizione

Valore predefinito

Abilitato

Abilita o disabilita il flusso di lavoro.

Priorità

Definisce la priorità dell'avviso.

1

Gravità

Definisce la gravità dell'avviso.

1

Element properties:

TargetMicrosoft.SQLServer.2008.DBEngine
CategoryEventCollection
EnabledTrue
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
RemotableTrue
Alert Message
Lo snapshot iniziale per la pubblicazione non è ancora disponibile
{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>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>