Wie SQL Server Express 2005 sichern? Anfügen und Überschreiben mit SQLCMD
Hallo an alle,
folgende Situation:
Wir haben einen SQL Server 2005 Express Edition. Dieser besitzt 2 wichtige für uns Datenbanken.
Da über die Managent Studio Express Software, kein regelmäßiges Backup läuft, muss dies anders erfolgen.
Im Moment läuft es per SQL Script, das mit SQLCMD.exe ausgeführt.
Mit 2 Tasks werden die Datenbanken ( 1x52 und 1x25MB) 2mal in der Woche vollgesichert (ist so gewollt).
Hier eins von den beiden SQL Scripten, das andere unterscheidet sich nur in den Pfad und Dateinamen:
Mit obigen Script wird die Sicherung immer nur angehängt. Das bedeutet ich habe pro Monat einen Zuwachs von 400 MB bzw. 200 MB. Nach einem Jahr ohne Eingreifen wären die Backupdateien über 4 GB bzw. 2,5GB gross. Da ist aber noch die Begrenzung im SQL Server 2005 Express, ich weiß.
Jetzt würde ich gerne folgende Lösung einbauen:
Um den Speicherbedarf zu begrenzen, würde ich gerne automatisch alle Sicherungen überschreiben bzw. löschen, die älter als 30 Tage sind.
Die Datenbank soll alle abgelaufenen Sicherungen selbstständig aus dem Medium überschreiben, damit kein Admin alle x Monate die Datenbankbacksicherung löschen muss, um die Dateigrösse zu korrigieren, Grösse der Datenbank selbst, wird sich nicht großartig ändern.
Die Datei wird nach der Sicherung per Backup Software über Internet FTP kopiert. (begrenzte Bandbreite und so).
Also es sollen immer nur die 30 letzten Sicherungen à 52MB bzw. 25 MB in dem Medium sein, so dass eine konstante Größe von 400MB bzw. 250 MB entsteht.
Wie kann ich das einstellen?
Ablaufzeitraum= 30 Tage sagt ja aus, das die Datenbank nicht gelöscht wird, solange ein nicht abgelaufenes Element enthalten ist.
Hab hier schon gelesen, aber die Anwendung ist mir noch nicht so richtig klar.
http://msdn2.microsoft.com/de-de/library/ms186865.aspx
Danke schon mal für eure Hilfe.#
Gruß Michi
folgende Situation:
Wir haben einen SQL Server 2005 Express Edition. Dieser besitzt 2 wichtige für uns Datenbanken.
Da über die Managent Studio Express Software, kein regelmäßiges Backup läuft, muss dies anders erfolgen.
Im Moment läuft es per SQL Script, das mit SQLCMD.exe ausgeführt.
Mit 2 Tasks werden die Datenbanken ( 1x52 und 1x25MB) 2mal in der Woche vollgesichert (ist so gewollt).
Hier eins von den beiden SQL Scripten, das andere unterscheidet sich nur in den Pfad und Dateinamen:
BACKUP DATABASE <databasename>
TO DISK = 'D:\Ressourcen\Datenbankbackup\Internet\InternetFull.bak'
WITH NOINIT, NOSKIP, STATS=25, RETAINDAYS = 30;
Mit obigen Script wird die Sicherung immer nur angehängt. Das bedeutet ich habe pro Monat einen Zuwachs von 400 MB bzw. 200 MB. Nach einem Jahr ohne Eingreifen wären die Backupdateien über 4 GB bzw. 2,5GB gross. Da ist aber noch die Begrenzung im SQL Server 2005 Express, ich weiß.
Jetzt würde ich gerne folgende Lösung einbauen:
Um den Speicherbedarf zu begrenzen, würde ich gerne automatisch alle Sicherungen überschreiben bzw. löschen, die älter als 30 Tage sind.
Die Datenbank soll alle abgelaufenen Sicherungen selbstständig aus dem Medium überschreiben, damit kein Admin alle x Monate die Datenbankbacksicherung löschen muss, um die Dateigrösse zu korrigieren, Grösse der Datenbank selbst, wird sich nicht großartig ändern.
Die Datei wird nach der Sicherung per Backup Software über Internet FTP kopiert. (begrenzte Bandbreite und so).
Also es sollen immer nur die 30 letzten Sicherungen à 52MB bzw. 25 MB in dem Medium sein, so dass eine konstante Größe von 400MB bzw. 250 MB entsteht.
Wie kann ich das einstellen?
Ablaufzeitraum= 30 Tage sagt ja aus, das die Datenbank nicht gelöscht wird, solange ein nicht abgelaufenes Element enthalten ist.
Hab hier schon gelesen, aber die Anwendung ist mir noch nicht so richtig klar.
http://msdn2.microsoft.com/de-de/library/ms186865.aspx
Danke schon mal für eure Hilfe.#
Gruß Michi
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 81623
Url: https://administrator.de/contentid/81623
Ausgedruckt am: 22.11.2024 um 14:11 Uhr
4 Kommentare
Neuester Kommentar
hi wenn du das so machen willst würde ich an deiner stelle folgendes machen
Schritt 1: Schauen ob im Verzeichnis eine .bak Datei im Verzeichnis mit dem Namen vorhanden ist. Falls ja diese Datei nehen und umbenennen. ( Am sinnigsten wäre es in diesem fall mit dem Namen aktdatum - 7 )
Schritt 2. Wenn datei umbenannt oder nicht vorhanden neue Sicherungsdatei erstellen.
Schritt 3: Alles löschen was älter aktdatum -30
Wenn ich den Ablauf richtig verstanden habe dann schreibe es bitte dann schaue ich mal das ich dir da ein Script bastel ;o)
Gruß
Sven
Schritt 1: Schauen ob im Verzeichnis eine .bak Datei im Verzeichnis mit dem Namen vorhanden ist. Falls ja diese Datei nehen und umbenennen. ( Am sinnigsten wäre es in diesem fall mit dem Namen aktdatum - 7 )
Schritt 2. Wenn datei umbenannt oder nicht vorhanden neue Sicherungsdatei erstellen.
Schritt 3: Alles löschen was älter aktdatum -30
Wenn ich den Ablauf richtig verstanden habe dann schreibe es bitte dann schaue ich mal das ich dir da ein Script bastel ;o)
Gruß
Sven
BACKUP DATABASE [test] TO DISK = N'c:\Programme\Microsoft SQL
Server\MSSQL.1\MSSQL\Backup\test.bak' WITH RETAINDAYS = 30, NOFORMAT, INIT, NAME =
N'test-Vollständig Datenbank Sichern', SKIP, NOREWIND, NOUNLOAD, STATS = 10
Hier der Code wenn du überschreiben willst. Aber an deiner Stelle würde ich das über das Database Managementtool vom SQL Express machen da kannst du all diese sachen einstellen und direkt als Job laufen lassen.