Datenbank mit OSQL wiederherstellen
Datenbanksicherung von Echtsystem in Testsystem einspiele
Hallo zusammen,
wir haben hier eine Datenbankanwendung auf einem SQL 2000 Server (demnächst 2005), für der es eine Produktiv- und eine Test-Datenbank gibt.
Wollen die Benutzer also was ausprobieren, melden Sie sich an der Test-DB usw.
Hierzu möchten die Kollegen in unregelmäßigen Abständen, teilweise sehr kurzfristig und zu ungewöhnlichen Zeiten, dass wir das Backup des Produktivsystems in die DB des Testsystems einspielen/überspielen. Das möchten wir ihnen jetzt zukünftig selbst überlassen, ohne dass sie Zugriff auf den Enterprise-Manager brauchen. Die melden sich per Windows am Test-Server an und starten eine Batch Datei.
Ich habe jetzt folgenden OSQL-Befehl zusammen, aber irgendwie funktioniert das noch nicht. Kann hier jemand vielleicht sagen, woran es liegen könnte?
Ich muss den kompletten Befehl aufgrund der Variablen TargetDBm BackupSource und NewestBackup in eine extra Variable "Befehl" setzen. OSQL konnte die Variablen nicht interpretieren.
---
Hier die Fehlermeldung:
Meldung 1834, Ebene 16, Status 1, Server LTTDB04, Zeile 1
Die Datei 'C:\Programme\Microsoft SQL Server\MSSQL\data\PRODUKTIVLG.MDF' kann
nicht überschrieben werden. Sie wird von der PRODUKTIVLG-Datenbank verwendet.
Meldung 3156, Ebene 16, Status 1, Server LTTDB04, Zeile 1
Die Datei 'PRODUKTIVLG_Data' kann nicht in 'C:\Programme\Microsoft SQL
Server\MSSQL\data\PRODUKTIVLG.MDF' wiederhergestellt werden. Verwenden Sie WITH
MOVE, um einen gültigen Speicherort für die Datei zu identifizieren.
Meldung 1834, Ebene 16, Status 1, Server LTTDB04, Zeile 1
Die Datei 'C:\Programme\Microsoft SQL Server\MSSQL\data\PRODUKTIVLG.LDF' kann
nicht überschrieben werden. Sie wird von der PRODUKTIVLG-Datenbank verwendet.
Meldung 3156, Ebene 16, Status 1, Server LTTDB04, Zeile 1
Die Datei 'PRODUKTIVLG_Log' kann nicht in 'C:\Programme\Microsoft SQL
Server\MSSQL\data\PRODUKTIVLG.LDF' wiederhergestellt werden. Verwenden Sie WITH
MOVE, um einen gültigen Speicherort für die Datei zu identifizieren.
Meldung 3013, Ebene 16, Status 1, Server LTTDB04, Zeile 1
RESTORE DATABASE wird fehlerbedingt beendet.
Danke schon mal
Gruß
Larz
Hallo zusammen,
wir haben hier eine Datenbankanwendung auf einem SQL 2000 Server (demnächst 2005), für der es eine Produktiv- und eine Test-Datenbank gibt.
Wollen die Benutzer also was ausprobieren, melden Sie sich an der Test-DB usw.
Hierzu möchten die Kollegen in unregelmäßigen Abständen, teilweise sehr kurzfristig und zu ungewöhnlichen Zeiten, dass wir das Backup des Produktivsystems in die DB des Testsystems einspielen/überspielen. Das möchten wir ihnen jetzt zukünftig selbst überlassen, ohne dass sie Zugriff auf den Enterprise-Manager brauchen. Die melden sich per Windows am Test-Server an und starten eine Batch Datei.
Ich habe jetzt folgenden OSQL-Befehl zusammen, aber irgendwie funktioniert das noch nicht. Kann hier jemand vielleicht sagen, woran es liegen könnte?
SET BEFEHL=OSQL -E -Q "RESTORE DATABASE %TargetDB% FROM DISK = N'%BackupSource%\%NewestBackup%' WITH FILE = 1, NOUNLOAD, REPLACE, STATS = 10"
%BEFEHL%
Ich muss den kompletten Befehl aufgrund der Variablen TargetDBm BackupSource und NewestBackup in eine extra Variable "Befehl" setzen. OSQL konnte die Variablen nicht interpretieren.
---
Hier die Fehlermeldung:
Meldung 1834, Ebene 16, Status 1, Server LTTDB04, Zeile 1
Die Datei 'C:\Programme\Microsoft SQL Server\MSSQL\data\PRODUKTIVLG.MDF' kann
nicht überschrieben werden. Sie wird von der PRODUKTIVLG-Datenbank verwendet.
Meldung 3156, Ebene 16, Status 1, Server LTTDB04, Zeile 1
Die Datei 'PRODUKTIVLG_Data' kann nicht in 'C:\Programme\Microsoft SQL
Server\MSSQL\data\PRODUKTIVLG.MDF' wiederhergestellt werden. Verwenden Sie WITH
MOVE, um einen gültigen Speicherort für die Datei zu identifizieren.
Meldung 1834, Ebene 16, Status 1, Server LTTDB04, Zeile 1
Die Datei 'C:\Programme\Microsoft SQL Server\MSSQL\data\PRODUKTIVLG.LDF' kann
nicht überschrieben werden. Sie wird von der PRODUKTIVLG-Datenbank verwendet.
Meldung 3156, Ebene 16, Status 1, Server LTTDB04, Zeile 1
Die Datei 'PRODUKTIVLG_Log' kann nicht in 'C:\Programme\Microsoft SQL
Server\MSSQL\data\PRODUKTIVLG.LDF' wiederhergestellt werden. Verwenden Sie WITH
MOVE, um einen gültigen Speicherort für die Datei zu identifizieren.
Meldung 3013, Ebene 16, Status 1, Server LTTDB04, Zeile 1
RESTORE DATABASE wird fehlerbedingt beendet.
Danke schon mal
Gruß
Larz
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 115887
Url: https://administrator.de/forum/datenbank-mit-osql-wiederherstellen-115887.html
Ausgedruckt am: 04.04.2025 um 05:04 Uhr
2 Kommentare
Neuester Kommentar

Eigentlich steht das in den Meldungen schon drin 
Du musste noch mit der Option WITH MOVE neue Pfade für die mdf und ldf-Datei angeben. Ohne Angabe nimmt er die Werte im Backup-File - und die zeigen ja auf die Produktions-DB, die aber läuft, somit sind deren Dateien in Benutzung und er kann sie nicht einfach so überschreiben.
RESTORE DATABASE nwind_new FROM DISK = 'c:\backups\northwind\nwind.bak'
WITH MOVE 'northwind' TO 'd:\Program Files\Microsoft SQL
Server\Data\nwind_new.mdf'
MOVE 'northwind_log' TO 'd:\Program Files\Microsoft SQL
Server\Data\nwind_new_log.ldf'
Du musste noch mit der Option WITH MOVE neue Pfade für die mdf und ldf-Datei angeben. Ohne Angabe nimmt er die Werte im Backup-File - und die zeigen ja auf die Produktions-DB, die aber läuft, somit sind deren Dateien in Benutzung und er kann sie nicht einfach so überschreiben.
RESTORE DATABASE nwind_new FROM DISK = 'c:\backups\northwind\nwind.bak'
WITH MOVE 'northwind' TO 'd:\Program Files\Microsoft SQL
Server\Data\nwind_new.mdf'
MOVE 'northwind_log' TO 'd:\Program Files\Microsoft SQL
Server\Data\nwind_new_log.ldf'