Kontrollfel på en speglingsserver vid användning av SQL Server speglingsarkitektur

Den här artikeln beskriver ett Microsoft-SQL Server kontrollfel som kan inträffa på en partnerserver när du använder SQL Server speglingsarkitektur.

Ursprunglig produktversion: SQL Server 2014, SQL Server 2012, SQL Server 2008 R2, SQL Server 2008
Ursprungligt KB-nummer: 2729953

Symptom

I SQL Server speglingsarkitektur kan du stöta på ett SQL Server kontrollkontrollfel på partnerservern (speglingsservern). I så fall kontrollerar du SQL Server felloggen för mer information. I loggen visas ett felmeddelande som liknar följande meddelande. Det här felet innebär vanligtvis att du måste återskapa speglingsparet.

SQL Server Assertion: File: loglock.cpp, line=834 Failed Assertion = 'result == LCK_OK' . Det här felet kan vara tidsrelaterat. Om felet kvarstår efter att instruktionen har körts igen använder du DBCC CHECKDB för att kontrollera databasens strukturella integritet eller startar om servern för att säkerställa att minnesinterna datastrukturer inte är skadade.

Fel: 3624, Allvarlighetsgrad: 20, Tillstånd: 1.

Normalt orsakas ett kontrollfel av ett programfel eller skadade data. Överväg att köra DBCC CHECKDBför att söka efter skadade databaser. Om du godkänner att skicka dumpar till Microsoft under installationen skickas en minidump till Microsoft. En uppdatering kan vara tillgänglig från Microsoft i det senaste Service Pack eller i en QFE från teknisk support.

Obs!

När det här problemet uppstår genereras en minidump-fil i mappen SQL Server fellogg. Den här filen har ett namn som liknar filnamnet SQLDumpnnnn.mdmp .

Orsak

Det här problemet kan inträffa i olika scenarier. Varje scenario har olika orsaker och lösningar, och varje scenario kan orsaka samma felmeddelande och kontrollfel.

Obs!

  • Även om felsignaturen verkar vara mycket specifik orsakas det faktiska felet av ett påstående som misslyckades. Felet kan till exempel orsakas av en försäkran som utför en proaktiv kontroll i SQL Server kod som validerar felfria tillstånd för att misslyckas så rent som möjligt i stället för att orsaka en processomfattande krasch.
  • Det är inte enkelt att fastställa den faktiska orsaken. Microsofts kundtjänst avgör vanligtvis orsaken. Det görs vanligtvis genom att samla in den fullständiga säkerhetskopieringsfilen för huvuddatabasen och de säkerhetskopior av transaktionsloggen som täcker tiden för problemet. Dessutom kan det krävas en fullständig processdumpfil för speglingen för att återskapa problemet i specifika inställningar.

Åtgärd

Lös problemet genom att hämta den senaste korrigeringen för din version av SQL Server. Mer information finns i följande tabell.

Orsak Knowledge Base-artikel Först fast i
Olika låsbeteenden mellan den primära och speglingen 2938828 FIX: Databasspegling träffar assert och speglingssessionen visar pausat tillstånd i SQL Server 2012 eller SQL Server 2014 2931693 kumulativ uppdatering 1 för SQL Server 2014 2931078 kumulativ uppdatering 9 för SQL Server 2012 SP1
Massinfogning/BCP med Check_Constraints AV SQL Server 2012
Ändring av krypteringsnycklarna: Huvudnyckel för databas, Huvudnyckel för serverinstans SQL Server 2012

Obs!

  • I föregående tabell visar den sista kolumnen endast den första versionen som innehåller korrigeringen. Eftersom SQL Server versioner är kumulativa innehåller senare versioner, till exempel SQL Server 2014 SP1, dessa korrigeringar. Dessa versioner visas dock inte i tabellen.
  • Mer information om hur du hämtar det senaste Service Pack för din version av SQL Server finns i Fastställa version, utgåva och uppdateringsnivå. SCENARIOt BCP/Massinfogning är ett vanligt scenario som förblir ofixerat för SQL Server 2008 och SQL Server 2008 R2, och det är den troligaste kända orsaken till lck_ok påståenden om dessa versioner. Problemet åtgärdades först i SQL Server 2012. Anledningen till att du inte åtgärdar detta i tidigare versioner är att det krävs en omarkitektur av SQL Server interna transaktionsloggar. En sådan ändring kan endast inkluderas i en större version av SQL Server.

Se även

Kontroll när du kör Massinfogning eller BCP