automatisches Backup mit Löschung nach Zeit x

SpeedPete

Neuer Benutzer
Beiträge
1
Hallo zusammen,
ich bin gerne bereit, mich zu dem Thema einzulesen, aber ich habe bisher nichts finden können. Basierend auf meinen Erahrungen mit ganz normalen PC-Backups, würde ich mir folgendes wünschen:
- regelmäßige automatische Sicherung meiner Datenbanken auf dem MS SQL Server. (Dies kann ich schon. Bisher inkrementell.)
- Nun wachsen die Backupdateien immer weiter und weiter. Ich möchte daher einen Zeitraum festlegen, nach dem eine Backupdatei gelöscht werden soll und dieses auch automatisieren. Hier finde ich noch nichts richtiges :-(.

Ist das bei inkrementellen Backups überhaupt möglich, diese später zu bereinigen? Oder sollte ich umstiegen und jedes Backup in eine eigene Datei schreiben? Und vor allem: wie erstelle ich diesen Automatismus zum Aufräumen?

Mein Traum wäre, dass man einfach festlegen kann: mach ein Vollbackup am Sonntag, dann 6 Tage lang ein inkrementelles Backup. Danach wieder von vorne. Backups, die älter als 4 Wochen sind, können gelöscht werden.

Wäre super, wenn mir jemand den Weg weises könnte. Danke,

Pete!
 
Werbung:
Wie genau machst du die Backups denn derzeit? Du sicherst aktuell mehrere MSSQL Datenbanken (von einem Server) mit Boardmitteln? Ich wusste nicht mal, das das auch inkrementell geht ;.-)

Muss das weiterhin mit Boardmitteln passieren? (Kostengründe?) Dann müsstest du vermutlich vieles selbst scripten, dann ginge das vermutlich, wenn auch umständlich. Inkrementelle Sicherungen würde man dann vielleicht nicht mehr machen oder jede Woche eine inkrementelle Sicherung neu beginnen und die dann nach ~14 Tagen löschen.

Allerdings würde ich eher zu einer Datensicherungssoftware raten, die Datenbanken application aware sichern kann, z.B. Veeam. Du bräuchtest dort nur eine reverse incrementel Sicherung anzulegen, das kann MSSQL vermutlich nicht. Dabei ist immer das letzte und aktuellste Backup das Vollbackup.
 
Auch bei dem Backup mit dem SQL Server kann man alles konfigurieren wie man möchte. Man kann das Ablaufdatum der Backups, wann Full und wann Increment Backups gemacht werden, wann Transaktionslogsicherungen gemacht werden?
Ohne Ablaufdatum werden Backups im Backupfile nicht bereinigt und wächst immer weiter.

Aber vorher sollte man sich über die Anforderungen an das Backup Gedanken machen!

EDIT:

Specifies when the backup set for this backup can be overwritten. If these options are both used, RETAINDAYS takes precedence over EXPIREDATE.
If neither option is specified, the expiration date is determined by the media retention configuration setting.

Allerdings würde ich eher zu einer Datensicherungssoftware raten, die Datenbanken application aware sichern kann, z.B. Veeam. Du bräuchtest dort nur eine reverse incrementel Sicherung anzulegen, das kann MSSQL vermutlich nicht. Dabei ist immer das letzte und aktuellste Backup das Vollbackup.
Ich würde den Default nutzen (Incremental Forever) und nur bei expliziten Gründen das Reverse Incremental.
 
Ich würde den Default nutzen (Incremental Forever) und nur bei expliziten Gründen das Reverse Incremental.
Naja bei einer DB mag das sinnvoll sein. Allerdings, wenn z.B. eine nachgelagerte Sicherung auf ein anderes Medium statt findet, kann es sinnvoll sein, ein aktuelles Vollbackup zu haben. Ich schreibe einmal die Woche alles noch auf ein Band, das für sich genommen ohne alles andere komplett sein soll.
 
Naja bei einer DB mag das sinnvoll sein. Allerdings, wenn z.B. eine nachgelagerte Sicherung auf ein anderes Medium statt findet, kann es sinnvoll sein, ein aktuelles Vollbackup zu haben. Ich schreibe einmal die Woche alles noch auf ein Band, das für sich genommen ohne alles andere komplett sein soll.

Das wäre ein expliziter Grund. Ich finde es nur hier nicht optimal es allgemein zu erwähnen / vorschlagen.

Veeam kann auch auf Band sichern, das läuft auch mit incr. Forever.
 
Hallo zusammen,
ich bin gerne bereit, mich zu dem Thema einzulesen, aber ich habe bisher nichts finden können. Basierend auf meinen Erahrungen mit ganz normalen PC-Backups, würde ich mir folgendes wünschen:
- regelmäßige automatische Sicherung meiner Datenbanken auf dem MS SQL Server. (Dies kann ich schon. Bisher inkrementell.)
- Nun wachsen die Backupdateien immer weiter und weiter. Ich möchte daher einen Zeitraum festlegen, nach dem eine Backupdatei gelöscht werden soll und dieses auch automatisieren. Hier finde ich noch nichts richtiges :-(.

Ist das bei inkrementellen Backups überhaupt möglich, diese später zu bereinigen? Oder sollte ich umstiegen und jedes Backup in eine eigene Datei schreiben? Und vor allem: wie erstelle ich diesen Automatismus zum Aufräumen?

Mein Traum wäre, dass man einfach festlegen kann: mach ein Vollbackup am Sonntag, dann 6 Tage lang ein inkrementelles Backup. Danach wieder von vorne. Backups, die älter als 4 Wochen sind, können gelöscht werden.

Wäre super, wenn mir jemand den Weg weises könnte. Danke,

Pete!
Hallo @SpeedPete, inkrementelle Backups gibts im SQL Server nicht. Möglichweise meinst Du differentielle. Diese speichern die Änderungen seit dem letzten Fullbackup. D.h. die differentiellen werden mit der Zeit immer größer. Die gängiste Backupmethode ist Fullbackup und dann Transactionlog Backups. Dazu kann ich Dir die Scripts von Ola Hallengren (ola.hallengren.com) empfehlen. Und ja, Backups macht man am besten in unterschiedliche Dateien. Um das ganze wieder aufzuräumen hast Du mehrere Möglichkeiten. 1. Infos über das Backup über einen Job mit dem Aufruf
Code:
DECLARE @CleanupDate datetime
SET @CleanupDate = DATEADD(dd,-30,GETDATE())
EXECUTE dbo.sp_delete_backuphistory @oldest_date = @CleanupDate
aufräumen. Dieser Aufruf entfernr die Backuphistorie älter als 30 Tage. Die Files würde ich am besten mit einem Powershellscript über den Taskscheduler entsprechend weglöschen.
 
Wie genau machst du die Backups denn derzeit? Du sicherst aktuell mehrere MSSQL Datenbanken (von einem Server) mit Boardmitteln? Ich wusste nicht mal, das das auch inkrementell geht ;.-)

Muss das weiterhin mit Boardmitteln passieren? (Kostengründe?) Dann müsstest du vermutlich vieles selbst scripten, dann ginge das vermutlich, wenn auch umständlich. Inkrementelle Sicherungen würde man dann vielleicht nicht mehr machen oder jede Woche eine inkrementelle Sicherung neu beginnen und die dann nach ~14 Tagen löschen.

Allerdings würde ich eher zu einer Datensicherungssoftware raten, die Datenbanken application aware sichern kann, z.B. Veeam. Du bräuchtest dort nur eine reverse incrementel Sicherung anzulegen, das kann MSSQL vermutlich nicht. Dabei ist immer das letzte und aktuellste Backup das Vollbackup.
Inkrementell gibt es auch nicht beim SQL Server ;-). Die Boardmittel sind Veeam weit, weit überlegen.
 
Werbung:
Auch bei dem Backup mit dem SQL Server kann man alles konfigurieren wie man möchte. Man kann das Ablaufdatum der Backups, wann Full und wann Increment Backups gemacht werden, wann Transaktionslogsicherungen gemacht werden?
Ohne Ablaufdatum werden Backups im Backupfile nicht bereinigt und wächst immer weiter.

Aber vorher sollte man sich über die Anforderungen an das Backup Gedanken machen!

EDIT:




Ich würde den Default nutzen (Incremental Forever) und nur bei expliziten Gründen das Reverse Incremental.
Das Setzen des Ablaufdatums heißt aber nicht, das die geschrieben Files gelöscht werden. Die bleiben stehen. Deswegen braucht man das eigentlich nie.
 
Zurück
Oben