Symptom
Anta att du använder funktionen AlwaysOn Availability groups i Microsoft SQL Server 2012. När du ändrar anslutningen till den sekundära repliken från "läsbar" till "oläsbar" blir det fel på sidor som använder sid komprimering i den angivna repliken.Tillgänglighets databaser som drabbar det här problemet på den sekundära repliken kan inte återställas på grund av ett fel när synkroniseringen upprepas. Den sekundära repliken synkroniseras inte med den primära repliken och den rapporterar synkroniseringsstatus för "SUSPEND_FROM_REDO". Dessutom visas följande fel meddelanden i fel loggen för SQL Server som är värd för den sekundära repliken:
<datum> <tid> SPID<ID> fel: 17066, allvarlighets grad: 16, State: 1. <Date> <Time> spid> <0 ID> SQL Server Assertion: fil: <sida. cpp>, Line = 3898 misslyckades Assertion = '! pageFull '. Det här felet kan vara tidsrelaterat. Om felet kvarstår efter att du har kört instruktionen kan du använda DBCC CHECKDB för att kontrol lera databasens strukturella integritet eller starta om servern för att säkerställa att data strukturer i minnet inte är skadade. <datum> <tid> SPID<ID> fel: 3624, allvarlighets grad: 20, State: 1 Date . TimeID Mer information finns i fel loggen för SQL Server. Vanligt vis orsakas ett kontroll fel av ett program fel eller skadade data. Överväg att köra DBCC CHECKDB för att kontrol lera att databasen är skadad. Om du har kommit överens om att skicka dump till Microsoft under installationen skickas en mini-dumpning till Microsoft. En uppdatering kan vara tillgänglig från Microsoft i senaste Service Pack eller i en QFE-teknik från teknisk support. <- datum> <- tid> spid<-ID> AlwaysOn-tillgänglighetsgruppen data förflyttning för databasen ' <databas namn> ' har upphävts på grund av följande: "system" (käll-ID 2; Käll sträng: ' SUSPEND_FROM_REDO '). För att fortsätta data flyttning i databasen måste du återuppta databasen manuellt. Information om hur du återupptar en tillgänglighets databas finns i SQL Server Books Online. <-datum> <Time> spid<ID> fel: 3313, allvarlighets grad: 21; State: 2. <- datum> <och> SPID> <0 ID> när du återställer en loggad åtgärd i databasen <databas namn 1786:4978584:74> Vanligt vis loggas det specifika misslyckandet som ett fel i händelse logg tjänsten för Windows. Återställ databasen från en fullständig säkerhets kopia eller reparera databasen. <- datum> <tid> SPID<ID> ALTER DB parameter alternativ: Fortsätt<datum> <Time> spid> <0 ID> AlwaysOn - tillgänglighet för databasens <databas namn> "har återupptagits. Detta är endast ett informations meddelande. Ingen användar åtgärd krävs. <datum> <tid> SPID<ID> icke-kvalificerade transaktioner återställs i databas <databas namn> för en tillstånds ändring för AlwaysOn-tillgänglighetsgruppen. Uppskattat slut för ande av återställning: 100%. Detta är endast ett informations meddelande. Ingen användar åtgärd krävs. <datum> <tid> spid<-ID> AlwaysOn-tillgänglighetsgruppen med den primära databasen avbröts för den sekundära databasen ' <databas namn> ' på tillgänglighets repliken med replik-ID: {bbdedecb-f26b-47e9-9e7d-7c22f99edb23}. Detta är endast ett informations meddelande. Ingen användar åtgärd krävs. <datum> <tid> SPID<ID> att starta databasen "<databas namn>". <- datum> <tid> SPID> <2 ID> återställning av databas ' <databas namn> ' (13) är 0% färdigt (ungefär 781 sekunder kvar). Fas 1 av 3. Detta är endast ett informations meddelande. Ingen användar åtgärd krävs.......
Lösning
Problemet är först åtgärdat i den kumulativa uppdateringen av SQL Server.
Kumulativ uppdatering 6 för SQL server 2012 SP2 kumulativ uppdatering 16 för SQL Server 2012 SP1
Varje ny kumulativ uppdatering för SQL Server innehåller alla snabb korrigeringar och alla säkerhets korrigeringar som ingick i den föregående kumulativa uppdateringen. Kolla in de senaste kumulativa uppdateringarna för SQL Server:
Mer information
Det föregående problemet kan uppstå när Läs åtkomsten ändras för den sekundära repliken. Du kan ange Läs åtkomst för tillgänglighets databaser på den sekundära repliken på följande två sätt:
-
Ange Läs åtkomst med kommandot ALTER AVAILABILITY GROUP:
ALTER AVAILABILITY GROUP [AGName]MODIFY REPLICA ON N'<SRV>' WITH (SECONDARY_ROLE(ALLOW_CONNECTIONS = NO))
-
Ange Läs åtkomst genom att ändra inställningarna i objekt Utforskaren i SQL Server Management Studio (SSMS):
-
Anslut till servern och öppna mappen AlwaysOn-tillgänglighet.
-
Öppna gruppen tillgänglighets grupper.
-
Högerklicka på tillgänglighets gruppen och välj Egenskaper.
-
Ändra den sekundära egenskapen för den sekundära repliken till Nejoch klicka sedan på OK.
-
Status
Microsoft har bekräftat att det här är ett problem i Microsoft-produkterna som nämns i "gäller".