Sümptomid
Oletagem, et kasutate AlwaysOn kättesaadavuse rühma Microsoft SQL Server 2012 või SQL Server 2014 andmebaasi ja suur avatud aktiivne tehing on olemas ja nõuab täiendavat Logi ruumi. Kui logifaili ei saa kasvada mõnel järgmistest põhjustest, siis tehing nurjub.
-
Täiendava faili puudumine
-
Logifail on konfigureeritud mitte kasvama
-
Logifail on saavutanud konfigureeritud suurima mahu
Lisaks kuvatakse järgmine tõrketeade:
Tõrge: 9002, raskusaste: 17; riik: 9. tehingu Logi andmebaasi "<andmebaasi nimi>" on täis tõttu "LOG_BACKUP".
Pärast Logi varunduse käivitamist kuvatakse teine 9002 tõrketeade:
Tõrge: 9002, raskusaste: 17; riik: 9. tehingu Logi andmebaasi "<andmebaasi nimi>" on täis tõttu "ACTIVE_TRANSACTION".
Pärast teist logifaili varundamist kuvatakse järgmine 9002 tõrketeade, millele järgneb 5901 tõrketeade:
Tõrge: 9002, raskusaste: 17; riik: 9. tehingu Logi andmebaasi "<andmebaasi nimi>" on täis tõttu "AVAILABILITY_REPLICA".
Andmebaasi <andmebaasi nime> kontrollpunkti kirjet ei saanud kirjutada, kuna Logi on ruumist väljas. Pöörduge andmebaasi administraatori poole, et kärpida Logi või eraldada andmebaasi logifailide jaoks rohkem ruumi. Tõrge: 5901, raskusaste: 16, olek: 1. üks või mitu andmebaasi kuuluvat <andmebaasi nimi> "kontrollpunkti loomine nurjus. See on tavaliselt tingitud süsteemiressursse (nt ketas või mälu) puudumisest või mõnel juhul andmebaasi korruptsiooni tõttu. Selle tõrke kohta üksikasjalikuma teabe saamiseks uurige tõrkelogi varasemaid kirjeid.
Kui järgmine kontrollpunkti või Logi varundid võetakse siis tehingu tagasipööramise ajal, võidakse kuvada järgmine tõrketeade:
MSG 3052, Level 16, State 1, Line 4BACKUP LOG ei saanud logida värskendusi andmebaasi <andmebaasi nimi> '. Järgnevad Logi varukoopiad on vaja varundamiseks punktist "<LSN ID 1>", et "<LSN ID 2>" pärast seda, kui logid on teinud kättesaadavaks nende logimiseks ruumi.
Kui teile kuvatakse need sõnumid, ei saa te enam andmebaasi uusi kandeid esitada ning te ei saa logifaili kasvada ega lisada mõnda muud logifaili.
Lahendus
Probleem parandati esmalt järgmise SQL serveri koondvärskenduses:
Iga uus koondvärskenduses SQL Server sisaldab kõiki käigultparandused ja kõik turvaparandusi, mis kuulusid eelmise koondvärskenduse. Soovitame teil alla laadida ja installida kumulatiivseid värskendusi SQL serveri jaoks:
Lahendus
Logide kärpimiseks ja tegevuse jätkamiseks saate kasutada järgmist lahendust.
-
Teise koopia kinnitamiseks märkige iga teisene koopia last_hardened_lsn (vt sys.dm_hadr_database_replica_states) vastab esmasele koopiale last_hardened_lsn. Seda saab teha järgmise päringuga, mis on ühendatud peamise koopia eksemplariga.
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>'
-
Esmasel koopial
-
Eemaldage andmebaas rühmast kättesaadavus.
-
Lisage andmebaas uuesti rühma kättesaadavus.
-
-
Iga teisene koopia
-
Lisage andmebaas uuesti rühma kättesaadavus.
-
Kui eemaldate andmebaasi rühmast kättesaadavus, kärbib see kohe oma logisid ja vabastab Logi ruumi. Kui last_hardened_lsn igal sekundaarsel koopial on identne esmase koopiaga ja andmebaasi eemaldamise ajal ei võeta sisse ühtegi Logi varundit ja kui lisate andmebaasi iga teise järel, lisatakse teise koopia uuesti ilma tõrgeteta või on vaja taastada sekundaarsed Logi varukoopiad. Kui teisene koopia pole varasem kui esmane koopia ja te peate eemaldama andmebaasist kättesaadavuse rühmast enne, kui teine saab selle kohale jõuda, võib teisene koopia olla taastatud, et saaksite selle enne uuesti lisamist uuesti lisada, või kukutada andmebaas teise koopiasse ja uuesti seemneks, et see sisaldaks täielikku ja tehingu Logi andmebaasi varukoopiat.
Olek
Microsoft on kinnitanud, et see probleem esineb jaotises "kehtib järgmiste toodete kohta" loetletud Microsofti toodetes.