KB3173471 — IZLABOTS: kļūda "Nevarēja atcelt atsaukšanu žurnāla ieraksta" un dublikāta darbība ir aizturēta SQL Server 2016, 2014 vai 2012

Attiecas uz
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

Pazīmes

Apsveriet šādu scenāriju:

  • Jūs izmantojat Microsoft SQL SQL Server 2016, 2014 vai 2012.
  • Jums ir datu bāze, kas ir daļa no grupas AlwaysOn pieejamība.
  • Primārajā dublikātā samazināsiet datu bāzes failus, lai samazinātu to lielumu.
  • Primārā replica nosūta visas transakciju žurnālā reģistrētās izmaiņas uz sekundāro dublikātu.
  • Sekundārajā dublikātā atsaukšanas atcelšanas pavedieni transakciju žurnālā izmaiņas lieto datu bāzei, kas ir daļa no pieejamības grupas.

Šādā gadījumā dublikāta darbība tiek aizturēta.

Turklāt, iespējams, saņemsit kļūdas ziņojumu, kas līdzīgs šim:

Piezīme

<Laikspiedols> spid41s Kļūda: 3456, smagums: 21, stāvoklis: 1.
<Laikspiedols> spid41s Nevarēja atcelt atsaukšanu žurnāla ieraksts (#), transakcijas ID (#), lapā (#), datu bāze '<dbname>' (datu bāzes ID #). Lapa: LSN = (#), piešķiršanas vienība = #, tips = #. Žurnāls: OpCode = #, konteksts #, PrevPageLSN: (#). Atjaunojiet no datu bāzes dublējuma vai labojiet datu bāzi.
<Laikspiedols> spid41s AlwaysOn pieejamības grupu datu kustība datu bāzei "<dbname>" ir aizturēta šāda iemesla dēļ: "sistēma" (Avota ID 2; Avota virkne: 'SUSPEND_FROM_REDO'). Lai atsāktu datu pārvietošanu datu bāzē, datu bāze jāatsāk manuāli. Informāciju par pieejamības datu bāzes atsākšanu skatiet sadaļā SQL Server grāmatas tiešsaistē.
<Laikspiedols> spid41s Kļūda: 3313, smagums: 21, stāvoklis: 2.laikspiedols>< spid41s Pārveidojot reģistrēto darbību datu bāzē "<dbname>", žurnāla ieraksta ID (#) radās kļūda. Parasti konkrētā kļūme tiek iepriekš reģistrēta kā kļūda Windows notikumu žurnāla pakalpojumā. Atjaunojiet datu bāzi no pilna dublējuma vai labojiet datu bāzi.

Iemesls

Šī problēma rodas, ja atsaukšanas atcelšanas procesa laikā tiek lietotas izmaiņas, ja datu bāzes programma sistēmas lapās konstatē nekārtotus LSN (GAM, PFS).

Risinājums

Šī problēma vispirms tika novērsta nākamajā SQL Server kumulatīvajā atjauninājumā:

Ieteikums: instalējiet jaunāko kumulatīvo atjauninājumu serverim SQL Server

Katrā jaunajā SQL Server kumulatīvajā atjauninājumā ir visi labojumfaili un visi drošības labojumi, kas bija iekļauti iepriekšējā kumulatīvajā atjauninājumā. Ieteicams lejupielādēt un instalēt jaunākos kumulatīvos SQL Server atjauninājumus:

      

        
Atjauninājums novērš šīs problēmas rašanos. Ja problēma jau ir radusies, veiciet tālāk norādītās darbības, lai atkārtoti pievienotos AlwaysOn pieejamības grupai.

  1. Noņemiet esošo AlwaysOn sekundāro dublikātu.
  2. Izpildiet šo komandu ietekmētajiem datu failiem, lai noņemtu nepiešķirto vietu no datu bāzes:
    DBCC SHRINKFILE(<file_id>, TRUNCATEONLY)
  3. Dublējiet datu bāzi un žurnālfailus.
  4. Atjaunojiet datu bāzi un žurnālus AlwaysOn sekundārajā dublikātā.
  5. Pievienojieties AlwaysOn pieejamības grupai.

      

Statuss

Microsoft apstiprināja, ka šī ir problēma Microsoft produktos, kas norādīti sadaļā "attiecas uz".

Atsauces

Uzziniet par terminoloģiju, ko Microsoft izmanto, lai aprakstītu programmatūras atjauninājumus.