Se aplică la
SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2012 Service Pack 3 SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Enterprise Core

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:

  1. Eliminați reproducerea secundară AlwaysOn existentă.

  2. 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)

  3. Copierea de rezervă a bazei de date și a fișierelor jurnal.

  4. Restaurați baza de date și jurnalele din reproducerea secundară AlwaysOn.

  5. 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.

Aveți nevoie de ajutor suplimentar?

Doriți mai multe opțiuni?

Explorați avantajele abonamentului, navigați prin cursurile de instruire, aflați cum să vă securizați dispozitivul și multe altele.