A tranzakciós naplók kivágása az SQL Server 2012 rendszerben

Az SQL Server 2012 tranzakciós naplói idővel elkerülhetetlenül növekednek, és bizonyos időpontokban elfoglalhatják az összes rendelkezésre álló lemezterületet. A helyzet elkerülése érdekében az SQL Server eszközöket tartalmaz a tranzakciónaplók csonkítására, hogy felszabadítson helyet az újrafelhasználáshoz. A naplók automatikusan levágásra kerülnek, a használt helyreállítási modelltől függően:

  • egyszerű (egyszerű modell) - a naplók a mérföldkő elérése után csonkolódnak
  • teljes (teljes helyreállítási modell) - a naplók biztonsági másolatának készítése után, ha az utolsó biztonsági másolat után ellenőrző pontot sikerült elérni

Vannak olyan helyzetek, amikor a naplók automatikus levágása nem úgy működik, ahogyan kellene, és a naplófájlok az összes lemezterületet felveszik. Ez általában váratlanul történik, és az adminisztrátornak sürgősen meg kell oldania a lemezterület felszabadításának kérdését.

Ebben az esetben, amikor csatlakozik az MS SQL adatbázishoz, a következő hiba jelentkezik:

Microsoft OLE szolgáltató az SQL Server számára: A „DBName” adatbázis tranzakciós naplója megtelt. Annak érdekében, hogy megtudja, miért nem lehet a naplóban helyet újrafelhasználni, olvassa el a log_reuse_wait_desc oszlopot a sys.database
HRESULT = 80040E14, SQLSTATE = 4 2000, natív = 9002

Ez azt jelenti, hogy a tranzakciós naplók elfoglalták a szabad helyet, és az SQL már nem tud naplófájlokat írni. Ebben a helyzetben kézzel csonkolhatja a tranzakciós naplókat.

Általában ez a helyzet akkor fordulhat elő, ha a teljes helyreállítási modellt (Teljes) használja. Ebben a modellben a naplófájlok nem csonkolódnak, amíg az összes tranzakciós napló nem kerül biztonsági mentésbe. Ez biztosítja a naplóban lévő rekordszámok (LSN) folyamatos sorozatát. Így a naplók csonkításához a teljes biztonsági másolatot kell készíteni az adatbázisról, vagy (gyorsabban) átmenetileg átállítani a helyreállítási modellt Egyszerűre.

Tehát a tranzakciónapló kivágásához indítsa el az SQL Server Management Studio (SSMS) konzolt, válassza ki a szükséges adatbázist, és nyissa meg annak tulajdonságait a helyi menüben. Ezután lépjen a fülre Options és változtassa meg az adatbázis helyreállítási modelljét (helyreállítási modell) egyszerűre.

Ezután az adatbázis helyi menüjében válassza a lehetőséget Feladatok -> Zsugorodás -> Fájls. A mezőn Fájl típusa válassza a Napló lehetőséget, majd a mezőben Fájl neve - naplófájl neve. A mezőn Zsugorodás meg kell határoznia A fel nem használt terület felszabadítása előtt olvassa el az oldalakat, és adja meg a fájlok méretének csökkentését, majd kattintson a gombra rendben.

A napló kivágása után váltson újra a teljes (teljes) adatbázis-helyreállítási modellre.

Az összes fent leírt művelet végrehajtható egy egyszerű szkripttel a Query Analizer segítségével (a szkript az SQL Server 2008 óta működik).
"DBName" HASZNÁLATA
VÁLTOZÓ ADATBÁZIS "DBName" BEÁLLÍTÁS EGYSZERŰ
DBCC SHRINKFILE ("DBName", "A napló kivágásának mérete");
VÁLTOZÓ ADATBÁZIS "DBName" BEÁLLÍTÁS TELJES

tanács. A tranzakciónaplók SQL Serverben történő kivágása után erősen ajánlott, hogy hozzon létre egy teljes biztonsági másolatot az adatbázisról, as Ha a naplófájlok megsérülnek, akkor nem tudja visszaállítani az adatbázist tranzakciós fájlokkal.