Das schrinken von LDF Files sollte man prinzipiell nur in Notfällen benutzen, da es zum einem Zukünftig Performance Verluste im I/O Bereich geben wird, und zum anderen die Datei sowieso wieder so groß wird wie vorher, wenn man nichts an den Backupplänen oder laufenden Jobs ändert.

Daher besser mehr Transaction Logs Backups machen um die Container Datei (LDF) so gut es geht klein zu halten.

Wenn man doch mal schrinken muss oder nur zu Supportzwecke im Testsystem das Script ausführen möchte, weil man wiedermal die Platten der VM nicht groß genug angelegt hat, dann folgendes ausführen.

Beispiel hier wäre das shrinken des LDF der Location_Activity_DB und MICROSDB

Zuerst wird die Datenbank in den Simple Recovery Modus gebracht.
Das bedeutet es wird das Logfile abgeschnitten. Es werden keine Transaktion mehr geschrieben.

Dann wird das Logfile geshrinkt, in unserem Beispiel auf 1 GB

(LOCATION_ACTIVITY_DB_Log, 1024);

Dann wird der Recovery Modus wieder auf Full gestellt.
Das bedeutet es werden wieder Transaktionen geschrieben.

Wichtig ist das ein Fullbackup danach läuft, sonst können keine Transaktion Log Backups erstellt werden.
Daher habe ich im Script noch einen Zusatz angehangen der direkt ein Full Backup erstellt.

Bitte hier darauf achten, das die Pfade stimmen.

 

Script Location_Activity_DB

USE LOCATION_ACTIVITY_DB;
GO
--Truncate the log by changing the database recovery model to SIMPLE.
ALTER DATABASE LOCATION_ACTIVITY_DB
SET RECOVERY SIMPLE;
GO
--Shrink the truncated log file to 1 GB.
DBCC SHRINKFILE (LOCATION_ACTIVITY_DB_Log, 1024);
GO
--Reset the database recovery model.
ALTER DATABASE LOCATION_ACTIVITY_DB
SET RECOVERY FULL;
GO

BACKUP DATABASE LOCATION_ACTIVITY_DB
TO DISK = 'D:\MSSQL\backup\BAK\LOCATION_ACTIVITY\LOCATION_ACTIVITY_DB_nachshrinklog.Bak'
   WITH FORMAT,
     MEDIANAME = 'LOCATION_ACTIVITY_DB_BACKUPS',
      NAME = 'Full Backup of LOCATION_ACTIVITY_DB';
GO

 

Script MICROSDB

USE MICROSDB;
GO
--Truncate the log by changing the database recovery model to SIMPLE.
ALTER DATABASE MICROSDB
SET RECOVERY SIMPLE;
GO
--Shrink the truncated log file to 1 GB.
DBCC SHRINKFILE (MCRSPOS_Log, 1024);
GO
--Reset the database recovery model.
ALTER DATABASE MICROSDB
SET RECOVERY FULL;
GO

BACKUP DATABASE MICROSDB
TO DISK = 'D:\MSSQL\backup\BAK\MICROSDB\MICROSDB_nachshrinklog.Bak'
   WITH FORMAT,
     MEDIANAME = 'MICROSDBBackups',
      NAME = 'Full Backup of MICROSDB';
GO

 

Shrink Logdateien (LDF)