Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi SQL DB kopieren (https://www.delphipraxis.net/87728-sql-db-kopieren.html)

NormanNG 5. Mär 2007 11:58

Re: SQL DB kopieren
 
Hi,

Zitat:

Man muß trotzdem die datenbank vor dem Kopieren abhängen (wenn man nicht eingestellt hat, daß das automatisch passieren soll)
Muss nicht sein. ich mache das immer so ( wenn auf dem Zielserver die DB sonst nichts wichtiges enthält):
Mit derm Enterprise-Manager die Datenbank auf dem Quellserver "sichern" und am Zielserver "wiederherstellten".

Schodn 5. Mär 2007 12:00

Re: SQL DB kopieren
 
ich muss das über einen button vom delphi aus machen, das is ja mein problem

NormanNG 5. Mär 2007 12:03

Re: SQL DB kopieren
 
Hi,

Zitat:

ich muss das über einen button vom delphi aus machen, das is ja mein problem
Nun der EM macht wahrscheinlich auch nichts anderes als
SQL-Code:
backup database ... to ...
und
SQL-Code:
restore database ... from ...
Das kann man sicher auch aus Delphi ausführen lassen.

mkinzler 5. Mär 2007 12:04

Re: SQL DB kopieren
 
Zitat:

Zitat von Schodn
ich muss das über einen button vom delphi aus machen, das is ja mein problem

Nicht schön funktioniert aber

per ShellExecute 'net stop <Instanznamen>' aufrufen, Kopieren; 'net start <Instanznamen>'

alzaimar 5. Mär 2007 12:10

Re: SQL DB kopieren
 
Zitat:

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


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:27 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz