Simptomi

Pretpostavimo da koristite grupu dostupnosti AlwaysOn u bazi podataka sustava Microsoft SQL Server 2012 ili SQL Server 2014, a postoji velika otvorena aktivna transakcija i potreban je dodatni prostor za zapisnik. Kada datoteka zapisnika ne može rasti iz jednog od sljedećih razloga, transakcija neće uspjeti.

  • Nedostatak dodatnog prostora za datoteke

  • Datoteka zapisnika konfigurirana je da ne raste

  • Datoteka zapisnika dosegla je konfiguriranu maksimalnu veličinu

Osim toga, pojavljuje se sljedeća poruka o pogrešci:

Pogreška: 9002, težina: 17, stanje: 9. dnevnik transakcija za bazu podataka <naziv baze podataka> ' je pun zbog ' LOG_BACKUP '.

Kada pokrenete sigurnosnu kopiju zapisnika, primit ćete još jednu poruku o pogrešci 9002:

Pogreška: 9002, težina: 17, stanje: 9. dnevnik transakcija za bazu podataka <naziv baze podataka> ' je pun zbog ' ACTIVE_TRANSACTION '.

Nakon nove sigurnosne kopije zapisnika potom primate drugu poruku o pogrešci 9002, a zatim poruku o pogrešci 5901:

Pogreška: 9002, težina: 17, stanje: 9. dnevnik transakcija za bazu podataka <naziv baze podataka> ' je pun zbog ' AVAILABILITY_REPLICA '.

Nije moguće zapisati zapis kontrolne točke u bazu podataka <naziv baze podataka> jer je zapisnik izvan prostora. Obratite se administratoru baze podataka da biste skratili zapisnik ili alocirali više prostora datotekama zapisnika baze podataka. Pogreška: 5901, težina: 16, stanje: 1. jedan ili više jedinica za oporavak koje pripadaju bazi podataka <naziv baze podataka> "nije uspjelo generiranje kontrolne točke. To je obično uzrokovano nedostatkom sistemskih resursa, kao što su disk ili memorija ili u nekim slučajevima zbog korupcije u bazi podataka. Detaljnije informacije o tom neuspjelu potražite u odjeljku evidencija o prethodnim stavkama.

Kada se nakon vraćanja transakcije uzmu pričuvne kontrolne točke ili zapisnike zapisnika, možda će vam se prikazati sljedeća poruka o pogrešci:

MSG 3052, razina 16, State 1, redak 4BACKUP zapisnik nije mogao prijaviti ažuriranja za bazu podataka <naziv baze podataka> '. Naknadne sigurnosne kopije zapisnika bit će potrebne za napredovanje na točki sigurnosne kopije iz ' <LSN ID 1> ' na ' <LSN ID 2> ' nakon što je mjesto zapisnika dostupno za njihovo zapisivanje.

Kada primite te poruke, više ne možete slati nove transakcije u bazu podataka i ne možete razviti datoteku zapisnika ni dodati neku drugu datoteku zapisnika.

Rješenje

Problem je prvi put riješen u sljedećem kumulativnom ažuriranju sustava SQL Server:

Svako novo Kumulativno ažuriranje za SQL Server sadrži sve hitne popravke i sve sigurnosne ispravke uključene u prethodno Kumulativno ažuriranje. Preporučujemo da preuzmete i instalirate najnovija kumulativna ažuriranja za SQL Server:

Zaobilazno rješenje

Pomoću sljedećeg zaobilaznog rješenja možete skratiti zapisnike i nastaviti aktivnost.

  1. Provjerite svaku sekundarnu repliku da biste potvrdili sekundarnu last_hardened_lsn replika (pogledajte sys.dm_hadr_database_replica_states) odgovara primarnoj repci last_hardened_lsn. To možete učiniti pokretanjem sljedećeg upita koji je povezan s instancom primarne replike

    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. Na primarnoj repci

    • Uklonite bazu podataka iz grupe raspoloživost.

    • Ponovno dodajte bazu podataka u grupu raspoloživosti.

  3. Na svakoj sekundarnoj repci

    • Ponovno dodajte bazu podataka u grupu raspoloživosti.

Uklanjanjem baze podataka iz grupe raspoloživost odmah će skratiti zapisnike i osloboditi prostora za zapisivanje. Ako je last_hardened_lsn na svaku sekundarnu repliku identična primarnoj repci i nema sigurnosnih kopija zapisnika u trenutku uklanjanja baze podataka iz grupe raspoloživost i ponovnog dodavanja baze podataka na svaku sekundarnu, sekundarna replika uspješno će se ponovno dodati bez pogrešaka ili mora vratiti sigurnosne kopije zapisnika na sekundarnom. Ako sekundarna replika nije aktualna uz primarnu repliku, a morate ukloniti bazu podataka iz grupe raspoloživost prije nego što sekundarno može nadoknaditi, ta sekundarna replika možda mora imati vraćene sigurnosne kopije da biste je mogli nadoknaditi prije nego što je ponovno dodate u grupu dostupnosti ili odbacite bazu podataka na sekundarnu repliku i ponovno je stvorite pomoću sigurnosnog kopiranja baze podataka i evidencije transakcija.

Status

Microsoft je potvrdio da se radi o problemu u Microsoftovim proizvodima navedenim u odjeljku "odnosi se na".

Potrebna vam je dodatna pomoć?

Proširite svoje vještine
Istražite osposobljavanje
Prvi koristite nove značajke
Pridružite se Microsoft Insidere

Jesu li ove informacije bile korisne?

Koliko ste zadovoljni kvalitetom prijevoda?
Što je utjecalo na vaše iskustvo?

Hvala vam na povratnim informacijama!

×