Oft will man sämtliche Backups eines Tages übersichtlich zusammenfassen. Das ist insbesondere dann interessant, wenn man die eingebaute Backup-Funktion des SQL Server nutzt und mehrere Sicherungen über einen Tag ausführt (z.B. durch häufige Log Backups).
Dies kann beispielsweise durch eine Backupdatei erreicht werden, die das aktuelle Datum trägt. Hier ist ein kleines Skript, das dies demonstriert (für MS SQL Server ab 7.0).
DECLARE @backname VARCHAR(128) SET @backname = 'c:\backup\backup' + CONVERT(VARCHAR, GETDATE(), 104) + '.bak' BACKUP DATABASE Northwind TO DISK = @backname
Erläuterung: Es wird hier die Tatsache ausgenutzt, dass T-SQL das Zusammenbauen von Zeichenketten in einer Variablen unterstützt. Hier wird einfach das aktuelle Datum (Funktion "getdate()") in einen Dateipfad eingebaut und als Variable "@backname" an den Backup-Befehl übergeben. Die Datei heißt dann "backup24.02.2002.bak" und liegt in "C:\backup".
Backupmedium
Um hier flexibler zu sein, kann die Technik der Backup-Medien hilfreich sein: Ein Backup-Medium ist ein logischer Name für eine Backup-Datei oder ein Tape. Dieser logische Name ist unabhängig vom realen Speicherort. Daher kann man einfach täglich ein neues Medium unter demselben Namen anlegen, hinter dem sich aber ein neuer physischer Name verbirgt.
Das folgende Skript demonstriert diese Technik. Es prüft, ob bereits ein Medium namens "BackMedium" vorhanden ist. Falls ja, wird es gelöscht. Dann wird es mit dem aktuellen Namen neu angelegt.
IF EXISTS (SELECT name FROM master.dbo.sysdevices WHERE name = 'BackMedium') BEGIN EXEC sp_dropdevice 'BackMedium' END DECLARE @medname VARCHAR(128) SET @medname = 'c:\backup\media' + CONVERT(VARCHAR, GETDATE(), 104) + '.bak' EXEC sp_addumpdevice 'disk', 'BackMedium', @medname
Erläuterung: Fast dieselbe Technik wie oben, nur wird hier der generierte Name an die Prozedur "sp_addumpdevice" übergeben, mit der ein logisches Backupmedium definiert wird (hier: "media24.02.2002.bak" in "C:\backup").
Automatisches Anlegen täglicher Backupmedien
Das Anlegen täglicher Backup-Medien kann mit dem SQL Server Agent automatisiert werden. Man braucht nur einen Job anzulegen, der das oben gezeigte Skript um 0:00 Uhr ausführt. Danach kann – unabhängig vom Tagesdatum – der Backupjob stets mit dem Namen des logischen Backup-Mediums ausgeführt werden.
http://faq-o-matic.net/?p=639