Simptome
Luați în considerare următorul scenariu:
-
Utilizați Microsoft SQL Server 2016, 2014 sau 2012.
-
Aveți o bază de date care face parte din grupul disponibilitate AlwaysOn.
-
În reproducerea principală, micșorați fișierele bazei de date pentru a le reduce dimensiunea.
-
Reproducerea principală trimite toate modificările înregistrate în Jurnalul de tranzacții la reproducerea secundară.
-
În reproducerea secundară, subiectele refacere aplică modificările din jurnalul de tranzacții în baza de date care face parte din grupul disponibilitate.
În acest scenariu, reproducerea este suspendată. În plus, este posibil să primiți un mesaj de eroare care seamănă cu următorul:
<marcă de timp> spid41s eroare: 3456, severitate: 21, stare: 1. <marcă de timp> spid41s nu a putut reface înregistrarea în jurnal (#), pentru ID-ul de tranzacții (#), pagina (#), baza de date ' <dbname> ' (baza de date ID #). Page: LSN = (#), unitate de alocare = #, tastați = #. Log: OpCode = #, context #, PrevPageLSN: (#). Restaurați dintr-o copie de rezervă a bazei de date sau reparați baza de date. <marcă de timp> spid41s AlwaysOn disponibilitatea grupurilor de date pentru baza de date ' <dbname> ' a fost suspendat din următorul motiv: "sistem" (ID sursă 2; Șir sursă: ' SUSPEND_FROM_REDO '). Pentru a relua mișcarea de date în baza de date, va trebui să reluați manual baza de date. Pentru informații despre cum să reluați o bază de date de disponibilitate, consultați SQL Server Books Online. <marcă de timp> spid41s eroare: 3313, severitate: 21, stare: 2. <marcă de timp> spid41s în timpul refacerii unei operațiuni înregistrate în baza de date ' <dbname> ', a apărut o eroare la ID înregistrare jurnal (#). De obicei, eroarea specifică a fost înregistrată anterior ca o eroare în Serviciul jurnal de evenimente Windows. Restaurați baza de date dintr-o copie de rezervă completă sau reparați baza de date.
Cauză
Această problemă apare atunci când se aplică modificările în timpul procesului de refacere, dacă motorul de baze de date întâmpină LSNs de comandă în paginile de sistem (GAM, SFP).
Rezolvare
Problema a fost remediată pentru prima dată în următoarea actualizare cumulativă de SQL Server:
Fiecare nouă actualizare cumulativă pentru SQL Server conține toate remedierile rapide și toate remedierile de securitate care au fost incluse în actualizarea cumulativă anterioară. Vă recomandăm să descărcați și să instalați cele mai recente actualizări cumulative pentru SQL Server:
Actualizarea împiedică apariția acestei probleme. Dacă problema a avut loc deja, urmați acești pași pentru a vă asocia la grupul disponibilitate AlwaysOn:
-
Eliminați reproducerea secundară AlwaysOn existentă.
-
Rulează următoarea comandă în fișierele de date afectate pentru a elimina spațiul nealocat din baza de date:
DBCC SHRINKFILE(<file_id>, TRUNCATEONLY)
-
Copierea de rezervă a bazei de date și a fișierelor jurnal.
-
Restaurați baza de date și jurnalele din reproducerea secundară AlwaysOn.
-
Asociați-vă la grupul disponibilitate AlwaysOn.
Stare
Microsoft a confirmat că aceasta este o problemă în produsele Microsoft enumerate în secțiunea „Se aplică la”.
Referințe
Aflați despre terminologia pe care o utilizează Microsoft pentru a descrie actualizările de software.