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.databaseHRESULT = 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