Am Wochenende ist eine Festplatte fast voll gelaufen, weil es letzte Woche eine Update (Änderte bei knapp 150 Datenbanken viele Tabellen) gab. Warum es einen Anstieg von Daten auf der Log Festplatte des SQL Servers gab war damit klar. Hier nun die Lösung: Alle Datenbanken auf SIMPLE stellen und danach per Maintenance Plan alle Datenbanken shrinken.
Was brauchen wir?
- eine Liste aller Datenbanken die auf FULL stehen
- eine Query die eine Datenbank auf SIMPLE stellt
DECLARE @TableName nvarchar(255) DECLARE @SQL nvarchar(4000) -- Erstelle einen Temp-Table Create Table ##temp ( TableName nvarchar(255) ) -- Ermitteln aller relevanten Datenbanken Insert Into ##temp (TableName) select name as TABLE_NAME FROM sys.databases where recovery_model_desc like 'FULL' -- Durch das Ergebnis loopen while exists (Select * From ##temp) begin Set NOCOUNT ON select top 1 @TableName = TableName from ##temp order by TableName asc SET @SQL = 'ALTER DATABASE ' + @TableName + ' SET RECOVERY SIMPLE' print @SQL delete ##temp where TableName = @TableName end drop table ##temp
Im SQL Management Studio einfach die Query ausführen.
Ergebniss in die Zwischenablage kopieren und in einen neue Abfrage kopieren.
Dann ausführen und schon stehen alle Datenbanken auf SIMPLE.
Fertig.
Nun nur noch einen Wartungsplan erstellen, eine Task Datenbank verkleinern hinzufügen und den Wartungsjob laufen lassen. Nachdem alles durchgelaufen war, war auf der Festplatte wieder ne Menge platz.
Hinterlasse einen Kommentar