Zum Inhalt springen

Sichern und Wiederherstellen von SQL Server Datenbanken


Beagol

Empfohlene Beiträge

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

...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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 2 Wochen später...

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...