Verkleinern einer Datenbank mit MSSQL-Server

Aus GEVITAS
Wechseln zu: Navigation, Suche

1 Allgemeines

Der Microsoft©SQL-Server© speichert alle Änderungen der Datenbank in einer "Log-Datei", damit die Änderungen jederzeit wieder rückgängig gemacht werden können. Das ist im Prinzip eine feine Sache, hat jedoch u.U. einen Nachteil:

Je nach Einstellung wird die Log-Datei immer größer und größer! Mit der Zeit kann es sein, dass die Datenbank-Datei z.B. 2 GB groß ist, die Log-Datei aber 20 GB! Das belastet den Server unnötig und verlangsamt auch die Zugriffe auf die Daten teilweise extrem!

2 Wichtig!!!

2.1 Datensicherung Teil 1

Führen Sie unbedingt eine Datenbank-Sicherung (Backup) der Datenbank durch, bevor Sie diese Modifikationen vornehmen! Sie alleine sind dafür verantwortlich, dass die Datenbank im Fehlerfall wiederhergestellt werden kann!

2.2 Datensicherung Teil 2

Normalerweise wird eine SQL-Datenbank regelmäßig gesichert. Das macht man sinnvollerweise im Rahmen eine Wartungsplans, der automatisch täglich ausgeführt wird. Im Rahmen dieses Wartungsplanes wird normalerweise die Log-Datei verkleinert. Es sollte Sie also misstrauisch machen, wenn die Log-Datei unverhältnismäßig groß wird! Prüfen Sie in diesem Fall, ob wirklich eine Datensicherung durchgeführt wird!

2.3 Aktuelle Benutzer

Obwohl die Verkleinerung auch "live" durchgeführt werden kann, empfehlen wir, dass in dieser Zeit kein Benutzer/keine Benutzerin mit dem System arbeitet. Bitten Sie also alle, das Programm zu schließen und erst wieder zu starten, wenn die Arbeiten durchgeführt wurden!

3 Verkleinern

3.1 Verkleinern per SQL-Script

Verwenden Sie dieses SQL-Script, um die Datenbank-Logdatei zu verkleinern:

-- ------------------------------------------------------------------------
-- Dieser Script stellt die Datenbank "reflex" auf das einfache
-- Transaktionsprotokoll um. Damit wächst die Log-Datei nicht mehr
-- ins Unendliche, wenn man kein regelmässiges SQL-Backup durchführt.
-- ------------------------------------------------------------------------

USE [master]
GO
ALTER DATABASE [REFLEX] SET RECOVERY SIMPLE WITH NO_WAIT
GO
ALTER DATABASE [REFLEX] SET RECOVERY SIMPLE 
GO

-- ------------------------------------------------------------------------
-- Dieser Script verkleinert die Log-Datei auf 10 MB
-- ------------------------------------------------------------------------

USE [reflex]
GO

DBCC SHRINKFILE (N'REFLEX_Log' , 10)
GO

Wichtige Hinweise dazu:

  • Dieser Script geht davon aus, dass den Name der Datenbank "REFLEX" lautet! Wenn Ihre Datenbank anders heißt, müssen Sie statt "REFLEX" Ihren Datenbank-Namen verwenden!


3.2 Verkleinern mit dem SQL Server Management Studio©

Man die Log-Datei auch mit dem SQL Server Management Studio© verkleinern.

Öffnen Sie das das SQL Server Management Studio© und melden Sie sich mit einem Benutzer an, der SQL-Administrator-Rechte hat! Dann klicken Sie im Baum links mit der rechten Maustaste auf die Datenbank und wählen aus dem Menü "Eigenschaften" aus.

3.2.1 Wiederherstellungsmodell prüfen/ändern

Zuerst müssen Sie das sog. "Wiederherstellungsmodell" prüfen und ggf. ändern.

Das Wiederherstellungsmodell ist eine Option, mit der festgelegt wird, wie die Log-Datei behandelt wird:

Vollständig bedeutet, dass alle Änderungen der Datenbank ohne zeitliche oder größenmäßige Einschränkung protokolliert werden! Das ist unnötig und führt zu einer übermäßigen Dateigröße der Log-Datei.

Einfach heißt, dass die Protokolldatei nur zu einer bestimmte Größe erreichen kann und die ältesten Daten gelöscht werden, wenn die Größe erreicht ist. Dieses ist die empfohlene Option!

Siehe auch MSDN-Artikel zum Wiederherstellungsmodell

Zum Anzeigen/ändern des Wiederherstellungsmodells klicken Sie im Eigenschafts-Menü auf das Register "Optionen":

SQL-Server Datenbank Optionen WiederherstModell.jpg

Stellen Sie hier das einfache Wiederherstellungsmodell ein! Bestätigen Sie die Option mit OK.

3.2.2 Datei verkleinern

Klicken Sie im Baum links mit der rechten Maustaste auf die Datenbank und wählen aus dem Menü "Eigenschaften" aus. Wählen Sie das Register "Dateien" aus:

SQL-Server Datenbank Optionen Dateien1.jpg

Hier werden die Informationen zu den Datenbank-Dateien angezeigt. In diesem Beispiel sehen Sie, um wieviel größer eine Logdatei ist (25318 MB) als die eigentliche Datenbank-Datei (2822 MB), mehr als 10 mal so groß!

Klicken Sie nun auf diese Schaltfläche:

SQL-Server Datenbank Optionen Dateien2.jpg

Geben Sie nun eine Maximal-Größe an, wie in diesem Beispiel:

SQL-Server Datenbank Optionen Dateien3.jpg

Bestätigen Sie die Option mit OK.

Schließlich geben Sie hier die neue Maximal-Größe der Log-Datei an:

SQL-Server Datenbank Optionen Dateien4.jpg

Bestätigen Sie die Option mit OK. Die Datei wird nun verkleinert, was ein paar Sekunden dauern kann.


4 Links