KB2979121 - FIX: L'agente di lettura dei log non riesce quando si esegue l'aggiornamento da SQL Server 2008 a SQL Server 2012 o SQL Server 2014

Si applica a
SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Standard SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use)

Sintomi

Si supponga che si utilizzi la replica transazionale in Microsoft SQL Server 2008 e che nella pubblicazione sia in esecuzione una query di aggiornamento. Quando si esegue l'aggiornamento di SQL Server a SQL Server 2012 o SQL Server 2014 e la query di aggiornamento non viene distribuita prima dell'aggiornamento, l'agente di lettura log potrebbe non riuscire con l'errore seguente:

Nota

<Data><Ora> Editore: {call sp_replcmds (500, 0, 0, , 500000)}
<Data><ora> Stato: 0, codice: 20011, testo: 'Impossibile eseguire 'sp_replcmds' su '<Nome editore>'.'.
<Data><e ora>: impossibile eseguire 'sp_replcmds' su '<Nome editore>'.
<Data><e ora> Stato agente Repl: 6
<Stato data><e ora> : 0, codice: 542, testo: "È stato rilevato un valore datetime non valido. Il valore supera l'anno 9999.».
<Data><ora> Stato: 0, codice: 3621, testo: "La dichiarazione è stata terminata".
<Data><e ora> Stato: 0, codice: 22037, testo: 'Impossibile eseguire 'sp_replcmds' su '<Nome editore>'.'.

Anche se questo problema non si è verificato, i record di log aggiornati per le istruzioni di aggiornamento possono comunque essere interpretati in modo errato dall'agente di lettura del log e nell'agente di distribuzione può verificarsi l'errore seguente:

Nota

515 Impossibile inserire il valore NULL nella colonna '<Nome colonna', tabella 'Nome> tabella>'; la colonna non consente NULL.< AGGIORNAMENTO non riuscito.

Nota

  • Tipi di dati e vincoli diversi possono causare la segnalazione di errori diversi e questo problema può anche causare la non convergenza.
  • Il problema si verifica quando si esegue l'aggiornamento da SQL Server 2008 o SQL Server 2008 R2 a SQL Server 2012 o SQL Server 2014.

      

Risoluzione

Se l'errore "515 Impossibile inserire il valore NULL nella colonna '<Nome colonna>', tabella '<Nome> tabella'; La colonna non ammette valori Null. UPDATE non riuscito" nell'agente di distribuzione, è necessario reinizializzare la replica. Questo aggiornamento rapido (hotfix) non risolve l'errore. Per evitare questo errore, è consigliabile disabilitare l'agente di lettura dei log prima dell'aggiornamento, quindi eseguire l'aggiornamento fino a questa correzione e quindi riabilitare l'agente di lettura dei log.
Il problema è stato risolto per la prima volta nell'aggiornamento cumulativo seguente di SQL Server.

Aggiornamento cumulativo 2 per SQL Server 2012 SP2 /it-IT/help/2983175

Aggiornamento cumulativo 3 per SQL Server 2014 /it-it/help/2984923

Aggiornamento cumulativo 11 per SQL Server 2012 SP1 /it-it/help/2975396

Informazioni sugli aggiornamenti cumulativi per SQL Server

Ogni nuovo aggiornamento cumulativo per SQL Server contiene tutte le correzioni rapide e di sicurezza incluse nell'aggiornamento cumulativo precedente. Vedere gli aggiornamenti cumulativi più recenti per SQL Server:

      

Stato

Microsoft ha confermato che si tratta di un problema relativo ai prodotti elencati nella sezione "Si applica a".