Thema: Delphi SQL DB kopieren

Einzelnen Beitrag anzeigen

alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#15

Re: SQL DB kopieren

  Alt 5. Mär 2007, 13:10
Zitat von mkinzler:
Dann reicht das Kopieren nicht (würde bei der MSDE oder anderen DBMS reichen). Datenbank muß abgehängt und in neuen Server eingehängt werden.
Ja und nein.

Einfacher, aber dreckiger Trick (klappt bei mir). Quell- und Ziel-Verzeichnisstruktur und Namen müssen identisch sein.

1. Auf der Ziel-DB erstellst Du einmalig die DB (leer, ohne Tabellen).
2. Ziel-Server beenden
3. Quell-Server beenden
4. MDB und LDB in das Zielverzeichnis kopieren
5. Ziel-Server starten (der hat ja nix mitbekommen)
6. Quell-Server starten

Du musst den Quellserver auch beenden, weil der sonst nicht die DB-Dateien (*.MDB und *.LDF) freigibt.

Natürlich sind die u.a. Backup-Histories auf dem Zielrechner dann flöten, aber für einfache DB reicht das.

Wenn Du unbedingt beide Server ständig online brauchst, dann könntest Du über die SQL-API versuchen, komplette Objekte zu transferieren. Ansonsten hilft nur ein Synchronisationstool, z.B. von RedGate. Das erledigt das für Dich.

Daneben gibt es ja noch die Synchronisationsmechanismen zwischen Servern: Die kannst Du so konfigurieren, das sie sich selbst aktualisieren. Da bin ich aber nicht der Spezi.

Noch eine Idee:
Verwende die Stored Procedures 'sp_detach_db' und 'sp_attach_db' bzw. 'sp_attach_single_file_db'.
1. sp_detach_Db auf dem Quellserver ausführen
2. sp_detach_Db auf dem Zielserver ausführen
3. Kopieren der Dateien zum Zielserver
4. sp_attach_db auf dem Quellserver ausführen
4. sp_attach_db auf dem ZielServer ausführen

Aber auch hier ist der Nachteil: Für kurze Zeit ist die Quell-DB nicht erreichbar.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat