SQL Datenbank ist voll


  
 Bezieht sich auf 
  
 Produkt(e):SELECTserver
 Version(en):N\A
 Umgebung: N\A
 Produktbereich: Installation/Konfiguration
 Produktunterbereich: SQL Management
 Ursprünglicher Autor:Jutta Eisenhauer, Bentley Technical Support Group
  

 

Problem

Es erscheint eine Meldung in den SELECTserver Logdateien, dass die SQL Datenbank voll ist.


Lösung

Im Laufe der Zeit kann der Speicherplatzbedarf für die SELECTserver-Datenbank stark schwanken.
Dies ist auf SQL-Server-Funktionen zurückzuführen und erfordert eine Datenbankpflege.
Sie können festlegen, dass der SQL Server automatisch seine Datenbank erweitert, wenn mehr Speicherplatz benötigt wird.
Ebenso können Sie auch ein "Schrumpfen" festlegen, um zugewiesenen jedoch ungenutzten Speicherplatz zurückzuerhalten.
Manchmal ist es sinnvoll, "Autogrow" und "Autoshrink" Ereignisse zu aktivieren, manchmal nicht.
(Siehe auch KB #315512 von Microsoft für weitere Informationen zu diesen Optionen)

Shrinking
Data Files (*.MDF / *.NDF)

Wenn Sie die automatische "Shrink"-Einstellung nicht aktiviert haben kann es vorkommen, dass Ihre Datenbank von erheblichen Datenmengen gelöscht wurde, und Sie möchten den Speicherplatz auf der Festplatte wiederherstellen, die die teilweise leere MDF-Datei aufnimmt.
Dazu können Sie den Befehl DBCC SHRINKDATABASE verwenden.
Siehe diesen MSDN-Eintrag für die technische Dokumentation zu den Befehlen DBCC SHRINKDATABASE oder DBCC SHRINKFILE

Um die SQL-Transaktionsprotokolle zu verkleinern, müssen Sie zuerst den Datenbank-Wiederherstellungsmodus konfigurieren.
Um herauszufinden, ob Sie den Datenbank-Wiederherstellungsmodus auf "vollständig" setzen, nehmen Sie Bulk-Logging vor oder machen Sie einen Rechtsklick auf die Datenbank, Eigenschaften, klicken Sie auf Optionen, der zweite Dropdown ist der Modus.
Hier ist noch mehr Informationen über DB-Wiederherstellungsmodi:
http://msdn.microsoft.com/en-us/library/aa173531%28v=SQL.80%29.aspx

Wenn Ihr Datenbank-Wiederherstellungsmodus auf FULL oder "Bulk-Logging" gesetzt ist, verwenden Sie die untere SQL-Anweisung.

Das Beispielskript sieht so aus:

 USE [master]

GO

ALTER
DATABASE [TestDb] SET RECOVERY SIMPLE WITH NO_WAIT

DBCC
SHRINKFILE(TestDbLog, 1)

ALTER
DATABASE [TestDb] SET RECOVERY FULL WITH NO_WAIT

GO

Wenn Sie die oberen Anweisung verwenden, müssen einige Werte geändert werden, damit sie an Ihre Datenbank für ein Test db angepasst sind.
Dies ist eine Beschreibung für den Datenbanknamen hdr_oma_2-15-11

USE
[SELECTserver]

GO

ALTER
DATABASE [SELECTserver] SET RECOVERY SIMPLE WITH NO_WAIT

DBCC
SHRINKFILE(SELECTserver _Log, 1)

ALTER
DATABASE [SELECTserver] SET RECOVERY FULL WITH NO_WAIT

GO

In diesem Fall ist SELECTserver der Datenbankname, wie im sql Management Studio beschrieben.
SELECTserver_Log ist der logische Name des Transactions-Logs.
Sie erhalten diesen mit einem Rechtsklick auf die Datenbank über Auswahl von "Eigenschaften", einen Klick auf "Dateien" in der Spalte "Logical Name".

Falls Ihr Datenbank-Wiederherstellungsmodus auf "Einfach" festgelegt ist, ist der Script einfacher: 

USE
[master]

GO

DBCC
SHRINKFILE(TestDbLog, 1)

GO

 

In meinem Fall:

USE
[SELECTserver]

GO

DBCC
SHRINKFILE(SELECTserver_Log, 1)

GO

 

See Also

Increase SQL Server Performance for the SELECTServer

 

Technical Requirements
http://communities.bentley.com/products/licensing/w/Licensing__Wiki/selectserver-technical-requirements.aspx

SELECTserver FAQ:
http://communities.bentley.com/products/licensing/w/Licensing__Wiki/selectserver-general-faq.aspx

Deployed SELECTserver Knowledge Requirements

http://communities.bentley.com/products/licensing/w/licensing__wiki/deployed-selectserver-knowledge-requirements-tn.aspx

 

REFERENCE

http://blog.sqlauthority.com/2010/05/03/sql-server-shrinkfile-and-truncate-log-file-in-sql-server-2008/

http://sqlserver2000.databases.aspfaq.com/how-do-i-reclaim-space-in-sql-server.html

Anderssprachige Quellen

Englisch