Weil Datenbanken, die in Benutzung sind, aus normalen Filebackups nicht immer wiederhergestellt werden können, empfiehlt es sich, täglich / regelmäßig Dumps der Datenbanken in Dateien zu erstellen.
Weil ich das öfter mal brauche und du sicher auch (sonst hättest du diesen Beitrag nicht gegooglet), habe ich dokumentiert wie ich das löse.
Schritt 1) Ordner C:\sqlbackup anlegen
Schritt 2) Datei C:\sqlbackup\dobackup.sql erstellen
DECLARE @DBName varchar(255)
DECLARE @DATABASES_Fetch int
DECLARE DATABASES_CURSOR CURSOR FOR
select
DATABASE_NAME = db_name(s_mf.database_id)
from
sys.master_files s_mf
where
— ONLINE
s_mf.state = 0— Only look at databases to which we have access
and has_dbaccess(db_name(s_mf.database_id)) = 1— Not master, tempdb or model
and db_name(s_mf.database_id) not in (‚Master‘,’tempdb‘,’model‘)
group by s_mf.database_id
order by 1OPEN DATABASES_CURSOR
FETCH NEXT FROM DATABASES_CURSOR INTO @DBName
WHILE @@FETCH_STATUS = 0
BEGIN
declare @DBFileName varchar(256)
set @DBFileName = datename(dw, getdate()) + ‚ – ‚ +
replace(replace(@DBName,‘:‘,’_‘),’\‘,’_‘)exec (‚BACKUP DATABASE [‚ + @DBName + ‚] TO DISK = N“c:\db backup\‘ +
@DBFileName + “‘ WITH NOFORMAT, INIT, NAME = N“‘ +
@DBName + ‚-Full Database Backup“, SKIP, NOREWIND, NOUNLOAD, STATS = 100‘)FETCH NEXT FROM DATABASES_CURSOR INTO @DBName
ENDCLOSE DATABASES_CURSOR
DEALLOCATE DATABASES_CURSOR
Schritt 3) Datei C:\sqlbackup\dobackup.bat erstellen
osql -Usa -Ppassword -i C:\sqlbackup\dobackup.sql
Anmerkung: in diesem Beispiel lautet der SQL-User „sa“ (Standard!) und das Passwort „manager“.
Schritt 4) Batch-Script C:\sqlbackup\dobackup.bat per Taskplaner täglich starten
Resultat: Es werden in unserem angelegten Ordner füt jede Datenbank und jeden Wochentag je ein Dump erstellt. z.B. „Freitag – myDatabase“, „Freitag – sdshared“, „Freitag – msdb“ und so weiter.
Diese Dumps lassen sich übrigens auch mit dem gleichen osql-Befehl wieder in eine Datenbank einlesen (z.B. osql -Usa -Pmanager -i „C:\sqlbackup\Freitag-myDatabase.sql“)
Bei Fragen oder Problemen dazu einfach kurz ne Mail schreiben oder gerne auch anrufen (nur keine Hemmungen, ich helfe gerne!). Kontaktdaten unter http://www.feins-it.de