KB3173471 – PATAISYMAS: klaida "Nepavyko perdaryti žurnalo įrašo", o replika laikinai sustabdoma 2016, 2014 arba 2012 „SQL Server“

Taikoma
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

Požymiai

Apsvarstykite šį scenarijų:

  • Naudojate "Microsoft „SQL Server“" 2016, 2014 arba 2012 m. versiją.
  • Turite duomenų bazę, kuri yra "AlwaysOn" prieinamumo grupės dalis.
  • Pirminėje replikoje sumažinkite duomenų bazės failus, kad sumažintumėte jų dydį.
  • Pirminė replika siunčia visus pakeitimus, įrašytus operacijų žurnale į antrinę repliką.
  • Antrinėje replikoje perdarymo gijos pritaiko operacijų žurnalo pakeitimus duomenų bazei, kuri yra prieinamumo grupės dalis.

Tokiu atveju replika laikinai sustabdoma.

Be to, galite gauti klaidos pranešimą, panašų į šį:

Pastaba

<laiko žyma> spid41s Klaida: 3456, Sunkumas: 21, Būsena: 1.
<laiko žyma> spid41s Nepavyko perdaryti žurnalo įrašo (#), operacijos ID (#), puslapyje (#), duomenų bazės DBNAME<> (duomenų bazės ID #). Puslapis: LSN = (#), paskirstymo vienetas = #, tipas = #. Žurnalas: OpCode = #, kontekstas #, PrevPageLSN: (#). Atkurkite iš atsarginės duomenų bazės kopijos arba pataisykite duomenų bazę.
<laiko žyma> spid41s AlwaysOn prieinamumo grupių duomenų judėjimas duomenų bazėje "<dbname>" buvo sustabdytas dėl šios priežasties: "sistema" (šaltinio ID 2; Šaltinio eilutė: 'SUSPEND_FROM_REDO'). Norėdami tęsti duomenų judėjimą duomenų bazėje, turite tęsti duomenų bazės veikimą rankiniu būdu. Informacijos apie tai, kaip atnaujinti prieinamumo duomenų bazę, ieškokite "„SQL Server“ Books Online".
<laiko žyma> spid41s Klaida: 3313, sunkumas: 21, būsena: 2.laiko< žyma> spid41s Perdarant užregistruotą operaciją duomenų bazėje "<dbname>", žurnalo įrašo ID (#) įvyko klaida. Paprastai konkreti triktis anksčiau užregistruojama kaip klaida "Windows" įvykių žurnalo tarnyboje. Atkurkite visos atsarginės kopijos duomenų bazę arba pataisykite duomenų bazę.

Priežastis

Ši problema kyla, kai perdarymo proceso metu taikomi keitimai, jei duomenų bazės modulis sistemos puslapiuose aptinka netvarkingus LSN (GAM, PFS).

Sprendimas

Problema pirmą kartą buvo išspręsta šiame kaupiamajame "„SQL Server“" naujinime:

Rekomendacija: įdiekite naujausią "„SQL Server“" kaupiamąjį naujinimą

Kiekviename naujame „SQL Server“ kaupiamajame naujinime yra visos karštosios pataisos ir visos saugos pataisos, kurios buvo įtrauktos į ankstesnį kaupiamąjį naujinimą. Rekomenduojame atsisiųsti ir įdiegti naujausius kaupiamuosius "„SQL Server“" naujinimus:

      

        
Naujinimas neleidžia kilti šiai problemai. Jei problema jau iškilo, atlikite šiuos veiksmus, kad iš naujo prisijungtumėte prie "AlwaysOn" prieinamumo grupės:

  1. Pašalinkite esamą "AlwaysOn" antrinę repliką.
  2. Vykdykite šią komandą paveiktiems duomenų failams, kad pašalintumėte iš duomenų bazės nepriskirtą vietą:
    DBCC SHRINKFILE(<file_id>, TRUNCATEONLY)
  3. Sukurkite atsarginę duomenų bazės ir žurnalo failų kopiją.
  4. Atkurkite duomenų bazę ir žurnalus antrinėje "AlwaysOn" replikoje.
  5. Prisijunkite prie "AlwaysOn" prieinamumo grupės.

      

Būsena

„„Microsoft““ patvirtino, kad tai yra „„Microsoft““ produktų, išvardytų dalyje „Taikoma“, problema.

Nuorodos

Sužinokite daugiau apie terminus, kuriuos „„Microsoft““ naudoja apibūdindama programinės įrangos naujinimus.