Beagol Geschrieben 15. Mai 2003 Geschrieben 15. Mai 2003 Hi, folgendes Prozedere: Ich kann im Enterprise Manager des SQL Server 2000 eine Datenbank mit einem fremden Backup wiederherstellen. D.H. ich geh auf "Wiederherstellen", suche mir das Backup, welches ich haben will und mache ein paar Einstellungen um deas fremde Backup einzuspielen. Diejenige die es schon gemacht haben, wissen was ich meine. Ich möchte dies nun in T-SQL machen. Hat da jemand ein Workaround für? Ich bin soweit: use master BACKUP DATABASE Urdatenbank TO DISK = 'e:\sqldb\BACKUP\urdatenbank.bak' RESTORE DATABASE ABC_AD_SCHUE001 FROM DISK = 'e:\sqldb\BACKUP\urdatenbank.bak' WITH MOVE 'urdatenbank_dat' TO 'e:\sqldb\Data\ABC_AD_SCHUE001.mdf', MOVE 'urdatenbank_log' TO 'e:\sqldb\Data\ABC_AD_SCHUE001log.ldf', Da krieg ich aber die Fehlermeldung, dass die Datenbank noch im Zugriff ist. Wie kann ich hier das Überschreiben erzwingen? Wer ne Idee hat...... Gruss und Danke Dietmar
Pointerman Geschrieben 16. Mai 2003 Geschrieben 16. Mai 2003 Moin! Vielleicht könnte Dir beim restore "REPLACE" weiterhelfen. Dient dazu, eine vorhandene Datenbank zu ersetzen!
HolzOnkel Geschrieben 16. Mai 2003 Geschrieben 16. Mai 2003 ...hmm... der Sperrprozess müsste mit einer aktiven SPID verbunden sein. Die kann man auslesen und killen... damit müsste einem Überschreiben nichts im Wege stehen... Hinweis: Nur eine theoretische Überlegung, habe sowas noch nie ausprobiert... aver vom rein logischen her... Gruss, der Onkel
Beagol Geschrieben 16. Mai 2003 Autor Geschrieben 16. Mai 2003 Original geschrieben von Pointerman Vielleicht könnte Dir beim restore "REPLACE" weiterhelfen. Dient dazu, eine vorhandene Datenbank zu ersetzen! Hi! OK, das mit REPLACE klingt logisch. Habs getestet und eine neue Fehlermeldung parat, die aber in sich nicht schlüssig ist. Ich setze also folgendes Statement ab:use master BACKUP DATABASE Urdatenbank TO DISK = 'e:\sqldb\BACKUP\urdatenbank.bak' RESTORE DATABASE ABC_AD_SCHUE001 FROM DISK = 'e:\sqldb\BACKUP\urdatenbank.bak' WITH replace, MOVE 'urdatenbank_dat' TO 'e:\sqldb\Data\ABC_AD_SCHUE001.mdf', MOVE 'urdatenbank_log' TO 'e:\sqldb\Data\ABC_AD_SCHUE001log.ldf'Als Fehler meldet mir der Server: Die logische Datei 'Die logische Datei 'datenbank_dat' ist nicht Teil der ABC_AD_SCHUE001-Datenbank. Verwenden Sie RESTORE FILELISTONLY zum Auflisten der logischen Dateinamen.' Alles klar, mache ich. Und RESTORE FILELISTONLY bringt das Ergebnis: LogicalName: 'datenbank_dat' Ist auch logisch, weil ich das vorher auch so angelegt habe. Und nu ? :confused: Gruss Dietmar
Pointerman Geschrieben 16. Mai 2003 Geschrieben 16. Mai 2003 Hi! Probier mal den MOVE-Teil wegzu lassen. Er müsste in dem Backup eigentlich alle infos über die einzelnen Dateien haben.
Beagol Geschrieben 16. Mai 2003 Autor Geschrieben 16. Mai 2003 Original geschrieben von Pointerman Probier mal den MOVE-Teil wegzu lassen. Er müsste in dem Backup eigentlich alle infos über die einzelnen Dateien haben. Neeee, das kann ja nicht klappen. Im Backup stehen die Infos zur ursprünglichen Datenbank. Ich will ja aber nicht wieder dahin zurücksichern, sondern in ein fremde Datenbank. Eben diese, die ich bei MOVE angebe. Gruss Dietmar
Beagol Geschrieben 26. Mai 2003 Autor Geschrieben 26. Mai 2003 Für alle die es interessiert und evtl. nach diesem Thema gesucht haben, ich habe es so gelößt: exec sp_detach_db 'urdatenbank' exec sp_detach_db 'ABC_AD_SCHUE001' exec xp_cmdshell 'cmd.exe /c copy C:\SQLData\urdatenbank.mdf C:\SQLData\DatABC_AD_SCHUE001.mdf',NO_OUPUT exec xp_cmdshell 'cmd.exe /c copy C:\SQLData\urdatenbank_log.ldf C:\SQLData\LogABC_AD_SCHUE001.ldf',NO_OUPUT exec sp_attach_db 'ABC_AD_SCHUE001', 'C:\SQLData\DATABC_AD_SCHUE001.mdf','C:\SQLData\LogABC_AD_SCHUE001.ldf' exec sp_attach_db 'urdatenbank', 'C:\SQLData\urdatenbank.mdf','C:\SQLData\urdatenbank_log.ldf' Also die Quell und Ziel Datenbanken abgehangen, die Dateiendateien kopiert und dann die Datenabken wieder angehangen. Fertig. Der Nachteil hierbei ist, dass die Datenabken nicht online beleiben, was aber bei meiner Anforderung nicht so schlimm ist. Gruss Dietmar
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden