Symptomen
Neem als voorbeeld het volgende scenario:
- U gebruikt Microsoft SQL Server 2016, 2014 of 2012.
- U hebt een database die deel uitmaakt van de AlwaysOn Availability Group.
- Op de primaire replica verkleint u de databasebestanden om hun grootte te beperken.
- De primaire replica verzendt alle wijzigingen die zijn vastgelegd in het transactielogboek naar de secundaire replica.
- Op de secundaire replica worden de wijzigingen in het transactielogboek toegepast op de database die deel uitmaakt van de beschikbaarheidsgroep.
In dit scenario wordt de replica onderbroken.
Bovendien wordt een foutbericht van de volgende strekking weergegeven:
Opmerking
<Tijdstempel> SPID41S-fout: 3456, ernst: 21, status: 1.
<Tijdstempel> SPID41S Kan logboekrecord (#), voor transactie-id (#), op pagina (#), database '<dbname>' (database-id #) niet opnieuw uitvoeren. Pagina: LSN = (#), toewijzingseenheid = #, type = #. Log: OpCode = #, context #, PrevPageLSN: (#). Een back-up van de database terugzetten of de database herstellen.
<tijdstempel> spid41s AlwaysOn Availability Groups gegevensverplaatsing voor database '<dbname>' is om de volgende reden onderbroken: 'system' (Bron-id 2; Brontekenreeks: 'SUSPEND_FROM_REDO'). Als u de gegevensverplaatsing in de database wilt hervatten, moet u de database handmatig hervatten. Zie SQL Server Books Online voor informatie over het hervatten van een beschikbaarheidsdatabase.
<tijdstempel> spid41s Fout: 3313, ernst: 21, status: 2.tijdstempel>< spid41s Tijdens het opnieuw uitvoeren van een geregistreerde bewerking in database '<dbname>' is een fout opgetreden bij de logboekrecord-id (#). Normaal gesproken wordt de specifieke fout eerder geregistreerd als een fout in de Windows Event Log-service. Zet de database terug vanaf een volledige back-up of repareer de database.
Oorzaak
Dit probleem treedt op wanneer wijzigingen worden toegepast tijdens het proces voor opnieuw uitvoeren als de database-engine LSN's tegenkomt die niet in de juiste volgorde staan op de systeempagina's (GAM, PFS).
Oplossing
Het probleem werd voor het eerst opgelost in de volgende cumulatieve update van SQL Server:
- Cumulatieve update 1 voor SQL Server 2016
- Cumulatieve update 8 voor SQL Server 2014 SP1
- Cumulatieve update 6 voor SQL Server 2012 SP3
- Cumulatieve update 15 voor SQL Server 2012 SP2
Aanbeveling: Installeer de meest recente cumulatieve update voor SQL Server
Elke nieuwe cumulatieve update voor SQL Server bevat alle hotfixes en alle beveiligingspatches die deel uitmaakten van de vorige cumulatieve update. We raden u aan de meest recente cumulatieve updates voor SQL Server te downloaden en te installeren:
- Meest recente cumulatieve update voor SQL Server 2016
- Meest recente cumulatieve update voor SQL Server 2014 SP1
- Meest recente cumulatieve update voor SQL Server 2012 SP3
- Laatste cumulatieve update voor SQL Server 2012 SP2
De update voorkomt dat dit probleem optreedt. Als het probleem zich al voordoet, volgt u deze stappen om opnieuw lid te worden van de AlwaysOn Availability Group:
- Verwijder de bestaande secundaire AlwaysOn-replica.
- Voer de volgende opdracht uit op de betrokken gegevensbestanden om niet-toegewezen ruimte uit de database te verwijderen:
DBCC SHRINKFILE(<file_id>, TRUNCATEONLY) - Maak een back-up van de database en logbestanden.
- De database en logboeken op de secundaire AlwaysOn replica terugzetten.
- Deelnemen aan de AlwaysOn Availability Group.
Status
Microsoft heeft bevestigd dat dit een probleem is bij de Microsoft-producten die worden vermeld in de sectie Van toepassing op.
Meer informatie
Meer informatie over de terminologie die Microsoft gebruikt om software-updates te beschrijven.