Mod_4 Foren-Moderator
Anmeldedatum: 13.09.2006 Beiträge: 51
|
Verfasst am: Mo, 10. Sep. 2007 09:01 Titel: Backup einer (oder mehrerer) SQL Server Datenbank(en) |
|
|
Für das Backup einer einzelnen Datenbank empfiehlt es sich, das mitgelieferte Backup-Tool zu verwenden. Dieses bietet u.a. die Möglichkeit, die archivierten Dokumente mit zu sichern und das Backup wird zusätzlich auch noch gezippt, um Platz zu sparen.
Es gibt aber auch die Möglichkeit, das Backup über eine Batchdatei auf dem Server auszuführen. Das kann z.B. notwendig werden, wenn man mehrere (CAWIN)-Datenbanken sichern möchte. Der folgende Code muß in eine DOS-Batchdatei (Dateiendung .bat) kopiert werden:
Code: | REM *********************************************************
REM **
REM ** Backup einer SQLServer-Datenbank
REM **
REM ***********************************************************
REM ** Verzeichnis, in das das Backup geschrieben werden soll.
REM ** Das Verzeichnis muss auf dem SERVER vorhanden sein!
set backuppath=<Verzeichnis>
REM ** Name des SQL-Servers
set dbserver=<Name SQL Server>
REM ** Aktuelles Datum in Variable "today" schreiben
for /f "tokens=1,2,3 delims=. " %%i in ('date /t') do set today=%%k_%%j_%%i
REM ** Sicherung durchführen
set dbname=<Name der Datenbank>
osql -E -S %dbserver% -Q "backup database %dbname% to disk = '%backuppath%%dbname%_%today%.bak'"
REM ** Für die Anzeige des Backup-Ergebnis beim Test über den Explorer
REM ** ggf. in der folgenden Zeile das "REM" entfernen. Nicht vergessen:
REM ** Bei automatischen Aufruf wieder das "REM" davor schreiben!
REM pause |
Die Batchdatei funktioniert nur, wenn sie auf dem Server von einem Benutzer mit Administrator-Rechten ausgeführt wird!
Der Grund dafür ist die automatische Anmeldung an dem SQL Server mit der Option "-E" bei Aufruf des Backup-Befehls. Theoretisch könnte man sich mit der Option "-U" auch mit einem normalen Benutzer anmelden, doch dann wird das Passwort abgefragt. Beim automatisierten Aufruf der Batchdatei über den Scheduler ("geplante Tasks") von Windows, müsste man dann das Passwort in die Batchdatei schreiben, was man aus Sicherheitsgründen auf keinen Fall tun sollte!
Die Batchdatei kann so noch nicht verwendet werden, es müssen noch drei Variablen mit den Werten aus Ihrer Systemumgebung ersetzt werden.
Zunächst einmal muss das Verzeichnis, in das die Sicherung gemacht werden soll, über die Variable backuppath angegeben werden:
Code: | set backuppath=C:\MeineBackups\ |
Das Verzeichnis liegt immer auf dem Server, d.h. auch wenn Sie das Backup vom lokalen Rechner aus starten, wird das Laufwerk C: des Servers verwendet! Das Verzeichnis muss vorher über den Explorer angelegt werden.
Der Name des Datenbankservers, den Sie z.B. in der CAWIN-Anmeldung in den erweiterten Optionen finden, wird über die Variable dbserver angegeben:
Code: | set dbserver=MeinServer\CAWIN |
Der dritte und letzte Parameter ist der Name der Datenbank dbname. Dieser muss durch den Namen ihrer Datenbank ersetzt werden:
Wenn Sie Änderungen an der Batch-Datei vorgenommen haben, können Sie das Backup auf dem Server einmal testen, in dem Sie die Batchdatei über den Explorer aufrufen. Für den Test sollten Sie in der letzten Zeile das "REM" vor dem Befehl pause entfernen, dann hält das Programm nach dem Backup kurz an, und Sie können sich die (Fehler-)Meldung ansehen.
Nach dem erfolgreichen Backup sollte in dem angegebenen Verzeichnis eine Datei mit dem Namen ihrer Datenbank und angehängten Tagesdatum im Format JJJJ_MM_TT, also zB. CAWIN_2007_09_06.bak liegen.
Wenn Sie mehrere Datenbanken sichern wollen, müssen nur Sie die Zeilen mit "set dbname=..." und "osql -E ..." für jede weitere Datenbank kopieren und nochmal ans Ende der Batchdatei schreiben. Anschließend nur noch den Namen der Datenbank anpassen.
Die Batchdatei können Sie nun auf dem Server über die geplanten Tasks (Systemsteuerung, siehe auch Windows-Hilfe) regelmäßig ausführen lassen. Wichtig ist, dass Sie als Benutzer einen Administrator angeben. _________________ Viele Grüße
vom CAWIN-Hotline-Team |
|