SolutionDev Blog

Gedanken rund um die Lösungsentwicklung

Netter Link zu SQL Themen

clock August 5, 2008 10:30 by author soldev

Beim Suchen nach Infos zum Transaction Log fand ich die folgende Webseite, welche eine recht ansehnliche Sammlung von SQL Tipps enthält. Auf alle Fälle lesenswert!

http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=55210&SearchTerms=How%20Backup%20works,What%20type%20of%20backup%20should%20I%20use,Automating%20Backups,Backup

Aktuelle Bewertung 5,0 von 1 Besuchern

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


SQL Server Express 2005 Transaction Log verkleinern

clock August 5, 2008 10:05 by author soldev

Es ist ein leidiges Thema, das Transaction Log und man könnte Jahre sich weiterbilden und wüsste wohl immer noch nicht jedes Detail (ob die Entwickler von MS das wissen? :) )

 Wer schon einmal versucht hat, das Transaction Log des SQL Servers im Full Recovery Modus zu verkleinern weiss, dass es eine ziemlich mühselige Angelegenheit ist. Der Speicher wird z.B. nicht freigegeben, wenn die Daten nicht gesichert sind (was Sinn macht) und auch nicht, wenn das Logfile noch durch offene Transaktionen oder Benutzerzugriffe in Gebrauch ist (was ebenfalls durchaus wünschenswert ist).

Gerade aber beim SQL Server Express mit seiner 4 GB Limite ist ein konstantes verkleinern des Transaktionsprotokolls unbedingt von Nöten. Nach einigem Hin und Her und aus verschiedenen Quellen habe ich das (zumindest für uns) optimale Vorgehen herausgetüftelt. Hier das Script:

BACKUP DATABASE [<dbname>] TO DISK=N'<diskname>' WITH NOFORMAT, NOINIT, MAME=N'<backupname>', SKIP, NOREWIND, NOUNLOAD, STATS=10
GO
BACKUP LOG [dbname] TO DISK=N'<diskname>' WITH FORMAT, INIT, NAME=N'<backupname>', SKIP, NOREWIND, NOUNLOAD, STATS=10
GO

USE <dbname>
ALTER DATABASE <dbname> SET RECOVERY SIMPLE
GO
DBCC SHRINKFILE (N'<logname>', <size>)
GO
ALTER DATABASE <dbname> SET RECOVERY FULL

Was läuft? Zuerst stellen wir die Datenbank und zusätzlich (weil paranoid?) das Transaktionsprotokoll sicher. Danach stellen wir den Recoverymodus auf "Simple", verkleinern das Transaktionsprotokoll und stellen den Recoverymodus wieder zurück.

Das ganze Script läuft bei uns ca. 2 Minuten. Das Verkleinern selber läuft ziemlich schnell. Selbst wenn in dieser Zeit ein Systemausfall auftritt, könnten wir mit einem Zurücksetzen von 2 Minuten leben.

In nächster Zeit werden wir das wohl als Script noch automatisieren.

Aktuelle Bewertung 5,0 von 1 Besuchern

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Search

Calendar

<<  Dezember 2017  >>
SoMoDiMiDoFrSa
262728293012
3456789
10111213141516
17181920212223
24252627282930
31123456

Archive

Tags

Categories


Blogroll

Disclaimer

The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.

© Copyright 2017

Sign in