Heute fiel mir auf meinem DB Server auf, dass die LDF Datei extrem angewachsen war. Warum wurde ich darauf aufmerksam? Weil meine Platte voll war :/ Ein Tool, dass zur Festplattenauslastung benutzt werden kann ist Treesize.
Um nun die LDF zu shrinken, einfach aus dem Management Studio, folgendes Skript ausführen. Dabei ist darauf zu achten, das ihr FTSDB durch euren Datenbank ersetzt.
SET NOCOUNT ON DECLARE @OFF_DB sysname = 'FTSDB' Begin declare @database sysname ,@Login sysname ,@Host sysname ,@OsUser sysname ,@SP_ID smallint ,@CRLF varchar(2) ,@SQL_Stmt nVarchar(500) ,@NotifyMsg nVarchar(500) declare cr_processes cursor for select spid, db_name(dbid) as DbName, loginame as Login, hostname as Host, nt_username as OSUser from master..sysprocesses where spid >=50 AND spid <> @@SPID -- close/kill all connections for this database open cr_processes while 1 = 1 begin fetch cr_processes INTO @SP_ID, @database, @Login, @Host, @OSUser if @@FETCH_STATUS <> 0 break IF lower(@database) = lower(@OFF_DB) BEGIN select @SQL_Stmt = N'kill ' + cast( @SP_ID as varchar(10)) print 'Killing Process : ' + cast( @SP_ID as varchar(10)) + ' for db=' + @Database execute sp_executesql @SQL_Stmt END end close cr_processes deallocate cr_processes End ALTER DATABASE [FTSDB] SET RECOVERY SIMPLE DBCC SHRINKDATABASE ('FTSDB') ALTER DATABASE [FTSDB] SET RECOVERY FULL