KB2979121 - ÅTGÄRD: Loggläsaragenten misslyckas när du uppgraderar från SQL Server 2008 till SQL Server 2012 eller SQL Server 2014

Gäller för
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)

Symptom

Anta att du använder transaktionsreplikering i Microsoft SQL Server 2008 och att det finns en uppdateringsfråga som körs på publikationen. När du uppgraderar SQL Server till SQL Server 2012 eller SQL Server 2014, och uppdateringsfrågan inte distribueras före uppgraderingen, kan loggläsaragenten misslyckas med följande fel:

Obs

<Date><Time> Publisher: {call sp_replcmds (500, 0, 0, , 0, 500000)}
<Datum></tid> Status: 0, kod: 20011, text: "Det gick inte att köra 'sp_replcmds' på '<Publisher Name>'."
<Datum></tid>: Processen kunde inte köra sp_replcmds på <Publisher Name>.
<Status för agent för datum></tid> repl: 6
<Date><Time> Status: 0, code: 542, text: "Ett ogiltigt datetime-värde påträffades. överstiger år 9999."
<Datum></tid> Status: 0, kod: 3621, text: "Utdraget har avslutats."
<Datum></tid-status>: 0, kod: 22037, text: "Det gick inte att köra 'sp_replcmds' på <'Publisher Name>'."

Även om det här problemet inte har inträffat kan uppgraderade loggposter för uppdateringsinstruktioner fortfarande feltolkas av loggläsaragenten och följande fel kan uppstå i distributionsagenten:

Obs

515 Det går inte att infoga värdet NULL i kolumnen "<Kolumnnamn>", tabellen "<Tabellnamn>", kolumnen tillåter inte null-värden. UPDATE fails.

Obs

  • Olika datatyper och begränsningar kan leda till att olika fel rapporteras, och det här problemet kan även orsaka bristande konvergens.
  • Problemet uppstår när du uppgraderar från SQL Server 2008 eller SQL Server 2008 R2 till SQL Server 2012 eller SQL Server 2014.

      

Lösning

Om felet "515 Det går inte att infoga värdet NULL i kolumnen "<Kolumnnamn>", tabellen "<Tabellnamn>"; Kolumnen tillåter inte null-värden. UPDATE fails" i distributionsagenten har inträffat bör du initiera om replikeringen. Den här snabbkorrigeringen åtgärdar inte det här felet. För att undvika det här felet bör du inaktivera loggläsaragenten före uppgraderingen, sedan uppgradera hela vägen till den här korrigeringen och sedan återaktivera loggläsaragenten.
Problemet åtgärdades först i följande kumulativa uppdatering av SQL Server.

Kumulativ uppdatering 2 för SQL Server 2012 SP2 /en-us/help/2983175

Kumulativ uppdatering 3 för SQL Server 2014 /en-us/help/2984923

Kumulativ uppdatering 11 för SQL Server 2012 SP1 /en-us/help/2975396

Om kumulativa uppdateringar för SQL Server

Varje ny kumulativ uppdatering för SQL Server innehåller alla snabbkorrigeringar och alla säkerhetskorrigeringar som ingick i den tidigare kumulativa uppdateringen. Kolla in de senaste kumulativa uppdateringarna för SQL Server:

      

Status

Microsoft har bekräftat att detta är ett problem i de Microsoft-produkter som anges i avsnittet "Gäller".