Applies ToSQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Standard SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use)

Simptomai

Tarkime, kad naudojate "AlwaysOn" pasiekiamumo grupę "Microsoft SQL Server" 2012 arba "SQL Server" 2014 duomenų bazėje, ir yra daug atidarytos aktyvios operacijos ir reikalinga papildoma įėjimo vieta. Kai žurnalų failas negali išaugti dėl vienos iš šių priežasčių, operacija nepavyksta.

  • Papildomos failų vietos trūkumas

  • Žurnalų failas nesuauga

  • Žurnalų failas pasiekia jo maksimalų dydį

Be to, gaunate šį klaidos pranešimą:

Klaida: 9002, sunkumas: 17, būsena: 9. duomenų bazės operacijų registras "<duomenų bazės pavadinimas>" yra visiškai susijęs su "LOG_BACKUP".

Paleidę žurnalų atsarginę kopiją gaunate kitą "9002" klaidos pranešimą:

Klaida: 9002, sunkumas: 17, būsena: 9. duomenų bazės operacijų registras "<duomenų bazės pavadinimas>" yra visiškai susijęs su "ACTIVE_TRANSACTION".

Po kitos žurnalų atsarginės kopijos gaunate kitą "9002" klaidos pranešimą, po kurio pateikiamas 5901 klaidos pranešimas:

Klaida: 9002, sunkumas: 17, būsena: 9. duomenų bazės operacijų registras "<duomenų bazės pavadinimas>" yra visiškai susijęs su "AVAILABILITY_REPLICA".

Negalima rašyti kontrolinio taško įrašo duomenų bazės <duomenų bazės pavadinimo> nes trūksta vietos. Kreipkitės į duomenų bazės administratorių, Norėdami sutrumpinti žurnalų arba priskirti daugiau vietos duomenų bazės žurnalų failams. Klaida: 5901, sunkumas: 16, State: 1. vienas ar daugiau atkūrimo įrenginių, priklausančių duomenų bazei "<duomenų bazės pavadinimas>" nepavyko sugeneruoti Checkpoint. Taip paprastai nutinka dėl sistemos išteklių, pvz., disko arba atminties, trūkumo arba kai kuriais atvejais dėl duomenų bazės sugadinimo. Peržiūrėkite ankstesnius įrašus klaidų logaritme, kad būtų pateikta išsamesnė informacija apie šį gedimą.

Kai paskesnis kontrolinis taškas arba žurnalų atsarginės kopijos bus imtasi atliekant operacijos atkūrimą, galite gauti šį klaidos pranešimą:

MSG 3052, lygis 16, 1 būsenos, eilutės 4BACKUP registras negalėjo registruoti duomenų bazės "<duomenų bazės pavadinimas>" naujinimų. Paskesnės žurnalo atsarginės kopijos bus reikalingos norint iš anksto sukurti atsarginio kopijavimo punktą iš "<LSN ID 1> ' <LSN ID 2> ' po to, kai bus galima juos registruoti.

Kai gaunate šiuos pranešimą, nebegalite pateikti jokių naujų operacijų į duomenų bazę ir negalite išplėsti žurnalų failo arba įtraukti kito žurnalų failo.

Sprendimas

Problema pirmą kartą buvo išspręsta šį kaupiamąjį naujinimą SQL serverio:

Kiekvienas naujas Kaupiamasis naujinimas, skirtas "SQL Server", yra visos karštosios pataisos ir visos saugos pataisos, kurios buvo pridėtos prie ankstesnio kaupiamojo naujinimo. Rekomenduojame atsisiųsti ir įdiegti naujausius kaupiamuosius SQL serverio naujinimus:

Sprendimas

Norėdami sutrumpinti žurnalus ir tęsti veiklą, galite naudoti šį sprendimo būdą.

  1. Patikrinkite kiekvieną antrinę repliką, kad patvirtintumėte antrinę repliką last_hardened_lsn (žr. sys.dm_hadr_database_replica_states) atitinka pradinę replikų last_hardened_lsn. Tai galite atlikti vykdydami šią užklausą, kuri prijungta prie pirminės replikos egzemplioriaus

    SELECT ags.name as AGGroupName,    ar.replica_server_name as InstanceName,    hars.role_desc,    db_name(drs.database_id)as DBName,    drs.last_hardened_lsn, drs.log_send_queue_size,    drs.synchronization_state_desc as SyncState,    ar.availability_mode_desc as SyncMode,    CASE drs.is_local WHEN 1 THEN drs.database_id ELSE NULL END as database_id    FROM sys.dm_hadr_database_replica_states drs    LEFT JOIN sys.availability_replicas ar ON drs.replica_id = ar.replica_id    LEFT JOIN sys.availability_groups ags  ON ar.group_id = ags.group_id    LEFT JOIN sys.dm_hadr_availability_replica_states hars        ON ar.group_id = hars.group_id and ar.replica_id = hars.replica_id      WHERE db_name(drs.database_id) = '<database name>'
  2. Pagrindinėje replikoje

    • Pašalinkite duomenų bazę iš prieinamumo grupės.

    • Iš naujo pridėkite duomenų bazę prie pasiekiamumo grupės.

  3. Kiekvienoje antrinėje replikoje

    • Iš naujo pridėkite duomenų bazę prie pasiekiamumo grupės.

Pašalindami duomenų bazę iš prieinamumo grupės, ji tuoj pat sutrumpins jos žurnalus ir atlaisvins žurnalo vietą. Jei kiekvienos antrinės replikos last_hardened_lsn yra identiška pirminės replikos, o duomenų bazės pašalinimas iš prieinamumo grupės ir iš naujo įtraukus duomenų bazę į kiekvieną antrinį, antrinė replika bus sėkmingai pridėta be jokių klaidų arba atkuriant žurnalų atsargines kopijas antrinėje. Jei antrinė replika nėra dabartinės su pagrindine replika ir turite pašalinti duomenų bazę iš prieinamumo grupės, prieš tai, kai antrinė versija gali pasivyti, tai antrinės replikos gali reikėti atkurti žurnalų atsargines kopijas, kad ją būtų galima vėl įtraukti į pasiekiamumo grupę, arba numesti duomenų bazę antrinėje replikoje ir iš naujo ją įtraukti į išsamią ir operacijų žurnalų duomenų bazės atsarginę kopiją.

Statusą

"Microsoft" patvirtino, kad tai yra "Microsoft" produktų, išvardytų skyriuje "taikoma", problema.

Reikia daugiau pagalbos?

Norite daugiau parinkčių?

Sužinokite apie prenumeratos pranašumus, peržiūrėkite mokymo kursus, sužinokite, kaip apsaugoti savo įrenginį ir kt.

Bendruomenės padeda užduoti klausimus ir į juos atsakyti, pateikti atsiliepimų ir išgirsti iš ekspertų, turinčių daug žinių.