Ich habe darüber gelesen, aber die Online-Dokumentation ist etwas schwer zu verstehen und scheint umständlich geschrieben zu sein. Zum Beispiel die INIT
, NOINIT
. Man sagt, es wird versuchen, alles zu überschreiben. Der andere sagt, es wird trotzdem angehängt.
Ich möchte etwas dazwischen. Ich möchte, dass abgelaufene Mediensätze nicht mehr in der Datei enthalten sind, sondern dass neue Sicherungsjobs neben noch nicht abgelaufenen Sätzen an die Datei angehängt werden.
Führt die unten stehende SQL die gewünschte Sicherung durch?
BACKUP DATABASE [mydb]
TO DISK = N'c:\Backups\mydb.bak'
WITH NOFORMAT, NOINIT, NAME = N'mydb-Full Database Backup', NOSKIP,
NOREWIND, NOUNLOAD, STATS = 10, RETAINDAYS = 60
GO
Wenn ich die oben genannten Schritte ausführe und ein Sicherungssatz vorhanden ist, der älter als 60 Tage ist, wird er dann aus der Datei entfernt?
Bearbeiten:
Als Antwort auf den Vorschlag von RichardTheKiwi habe ich den Code neu geschrieben, um jedes Mal eine neue Datei zu erstellen. Ich werde dann ein Windows-Skript schreiben, um Dateien zu löschen, die älter als ein bestimmtes Datum sind
declare @filename varchar(max)
set @filename = 'c:\sqlbackups\pptd_' + replace(replace(convert(varchar, getdate(), 120),':','_'),' ','_') + '.bak'
BACKUP DATABASE [Peter's pointless test database]
TO DISK = @filename
WITH FORMAT, INIT, NAME = N'pptd-Full Database Backup',
NOREWIND, NOUNLOAD, STATS = 10
GO