AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Datenbank duplizieren

Ein Thema von erich.wanker · begonnen am 24. Jun 2020 · letzter Beitrag vom 25. Jun 2020
Antwort Antwort
Benutzerbild von erich.wanker
erich.wanker

Registriert seit: 31. Jan 2008
Ort: im schönen Salzburger Land
464 Beiträge
 
Delphi XE4 Professional
 
#1

Datenbank duplizieren

  Alt 24. Jun 2020, 11:03
Datenbank: mysql • Version: 32bit • Zugriff über: ZeosLib
Hallo,

Ziel:
ich würde gerne ein mysql-Datenbank vom lokalen rechner (mysql InnoDB) auf einen Cluster kopieren (via Delphi Code)

Dazu habe ich 2 ZeosLib-ZConnections erstellt ( ZConnection1 = localhost / ZConnection2 = remote mySQL Cluster)

Plan:
1.) Zuerst mit ZConnection2.ExecuteDirect("CREATE DATABASE IF NOT EXISTS ..") ein Datenbank erstellen

2.) Dann via Befehl "CREATE TABLE newtable LIKE oldtable" die Tabellen erstellen

3.) Dann via "INSERT newtable SELECT * FROM oldtable" die neuen Tabellen füllen

Problem:

Wie soll ich bitte dem SQL beibringen, dass es 2 verschiedene ZConnections verwenden soll:

"CREATE TABLE ZConnection2.newtable LIKE ZConnection1.oldtable"

und wie führe ich das SQL aus?



Geht das überhaupt??

Danke für Infos
Erich

Delphi XE4
ZeosLib 7
MySQL
Erich Wanker - for life:=1971 to lebensende do begin ..
O
/H\
/ \
  Mit Zitat antworten Zitat
stifflersmom

Registriert seit: 8. Dez 2005
Ort: 24994 Holt
381 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

AW: Datenbank duplizieren

  Alt 24. Jun 2020, 11:23
Ist das eine wiederkehrende Aufgabe, für die sich so ein Projekt überhaupt lohnt?
Oder andersrum gefragt: Warum nicht einmalig auf dem Alt-Server ein mysqldump erstellen und das dann in die neue Datenbank auf dem Clusterserver per Mysql einelsen?
  Mit Zitat antworten Zitat
Benutzerbild von erich.wanker
erich.wanker

Registriert seit: 31. Jan 2008
Ort: im schönen Salzburger Land
464 Beiträge
 
Delphi XE4 Professional
 
#3

AW: Datenbank duplizieren

  Alt 24. Jun 2020, 11:59
Nur eine Spielerei

Ich bin über den SQL Befehlt "INSERT newtable SELECT * FROM oldtable" gestolpert .. wollte schnell was ausprobieren - und siehe da: Mir fehlt die Logik wie das mit zwei ZConnections überhaupt funktionieren soll/kann?
Erich Wanker - for life:=1971 to lebensende do begin ..
O
/H\
/ \
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.739 Beiträge
 
Delphi 6 Enterprise
 
#4

AW: Datenbank duplizieren

  Alt 24. Jun 2020, 12:13
Nur eine Spielerei

Ich bin über den SQL Befehlt "INSERT newtable SELECT * FROM oldtable" gestolpert .. wollte schnell was ausprobieren - und siehe da: Mir fehlt die Logik wie das mit zwei ZConnections überhaupt funktionieren soll/kann?
Kann es so erstmal nicht. Du kannst die Daten in deine Anwendung holen mit Connection 1 und in die andere Datenbank schreiben mit Connection 2 aber das geht nicht mal eben mit 2 SQL-Befehlen. Das ginge nur, wenn die Datenbanken miteinander verbunden wären. In Oracle geht das z.B. über Database-Links. Aber dann brauchst du auch nur eine Connection zu einer Datenbank wo du dann durch den Link auf die Zweite durchgreifst. Aber ich weiß nicht, ob das in MYSQL geht und ob das in deinen Szenario: Entwichlungsrechner -> Produktiv-Server überhaupt Sinn macht.
Ralph
  Mit Zitat antworten Zitat
stifflersmom

Registriert seit: 8. Dez 2005
Ort: 24994 Holt
381 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

AW: Datenbank duplizieren

  Alt 24. Jun 2020, 12:20
Auf Shellebene ginge das über eine Pipe

Code:
mysqldump datenbank -ubenutzer -ppasswort|mysql -hAdresse -ubenutzer -ppasswort datenbank
Wobei die datenbank auf dem Neuserver schon bestehen muss!
  Mit Zitat antworten Zitat
Ghostwalker

Registriert seit: 16. Jun 2003
Ort: Schönwald
1.299 Beiträge
 
Delphi 10.3 Rio
 
#6

AW: Datenbank duplizieren

  Alt 24. Jun 2020, 12:42
Mit MySQL geht das so in der Art und Weise nicht, soweit ich weiß.

Wie Jumpy schon sagte, kannst du über die eine Connection lesen und auf die andere Connection speichern, das sollte gehen.
Oder, wenn es eh die komplette Datenbank ist, einfach die Dateien kopieren.
Uwe
e=mc² or energy = milk * coffee²
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:53 Uhr.
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 by Thomas Breitkreuz