Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Sichern und Wiederherstellen von SQL Server Datenbanken

Empfohlene Antworten

Veröffentlicht

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

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

  • Autor
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

  • Autor
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

  • 2 Wochen später...
  • Autor

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

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.