Ich hatte einige Probleme, mit unseren Datenbanken auf unseren Datenbank Servern. Das Programm waren etwas träge und auch einen schmerzhaften Datenverlust, da eine 230 GB große Datenbank sich mit einer 5% rate vergrößern wollte, aber nicht genug Festplattenplatz hatte, führten nun dazu sich mal mit diesem Thema näher zu beschäftigen.
Probleme:
Teilweise standen Datenbanken auf 1 MB wachstumsrate, oder standen auf 5%, waren begrenzt auf 100 MB, etc. Bei 6 Microsoft SQL Datenbank Servern mit insgesamt über 300 Datenbanken, wollte ich nicht unbedingt jede einzeln prüfen und korrigieren. Schnell ein Script machen.
Identifizieren der Datenbanken:
DECLARE @Querys nvarchar(4000) DECLARE @DBName nvarchar(100) DECLARE @LName nvarchar(100) -- Erstelle #dbnames Tabelle Create Table #dbnames (DBName sysname,LName sysname,PName nvarchar(500)) -- Find alle Datenbanken Insert Into #dbnames (DBName, LName, PName) select DB_NAME(files.database_id), name, physical_name from sys.master_files files where files.type in (0,1) and ((files.growth != 0 and is_percent_growth = 1) or (files.growth < (128*128) and is_percent_growth = 0)) and files.database_id > 4 -- Erzeuge Query für Ausgabe while exists (Select * From #dbnames) begin Set NOCOUNT ON select top 1 @DBName = DBName, @LName = LName from #dbnames order by DBName asc SET @Querys = 'ALTER DATABASE [' + @DBName + '] MODIFY FILE ( NAME = N''' + @LName + ''', FILEGROWTH = 128MB ) ' print @Querys delete #dbnames where DBName = @DBName end -- Löschen temporäre Tabelle #dbnames drop table #dbnames
Nachdem man die Query ausgeführt hat, werden in der Ausgabe die nötigen Querys erstellt. Diese kann man sich in ein neues SQL Abfrage Fenster kopieren und ausführen.
Damit hatte sich mein Problem sehr schnell behoben.
Hinterlasse einen Kommentar