AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi MySQL Datenbanksyncronisierung mit Remote
Thema durchsuchen
Ansicht
Themen-Optionen

MySQL Datenbanksyncronisierung mit Remote

Ein Thema von Mavarik · begonnen am 29. Sep 2010 · letzter Beitrag vom 30. Sep 2010
Antwort Antwort
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.143 Beiträge
 
Delphi 10.3 Rio
 
#1

MySQL Datenbanksyncronisierung mit Remote

  Alt 29. Sep 2010, 13:55
Datenbank: MySQL • Version: 5.x • Zugriff über: SciBit Direkt
Hallo Zusammen!

Ich habe 2 MySQL Server die mit einem "supercoolen" Verwaltungstool syncronisiert werden.

Das klappt auch soweit ganz gut..

BTW:FEDERATED ist nicht möglich weil der Server ggf. nicht verfügbar ist...

Es sei den die Verbindung zum Server bricht mal wieder zusammen während des Transfers.

Nun wir in regelmäßigen Absänden mit "CHECKSUM TABLE XY" verglichen ob alles geklappt hat.

Frage: Wie kopiere ich mit Delphi die Tabelle am einfachsten von Local zu Remote...
Hierbei müssen natürlich auch gelöschte Datensätze Remote gelöscht werden?

Gibt es etwas besseres als Drop Create und ne For Schleife? Wie kann ich ermitteln was sich geändert hat? Stichwort: Partielle Checksum mit Intervall-Schachtlung.. oder so...

Jemand ne Idee... ?

Alle Daten neu zu übertragen dauert viel zu lange!

Grüsse Mavarik
  Mit Zitat antworten Zitat
Neumann

Registriert seit: 6. Feb 2006
Ort: Moers
536 Beiträge
 
Delphi 12 Athens
 
#2

AW: MySQL Datenbanksyncronisierung mit Remote

  Alt 30. Sep 2010, 12:32
Hallo,

da würde folgendes gehen allerdings bin ich mir nicht sicher ob MYSQL das leisten kann.

Trigger für jede Tabelle erstellen, die bei jeder Datensatzänderung den SQL-Befehl in eine Tabelle schreibt; diese Tabelle braucht dann noch ein zusätzliches Feld für gesendet. Zb: (ID Bigint, SQLText varchar(1000) Gesendet boolean), (Datentypen sind vielleicht nicht ganz korrekt geschrieben; benutze MYSQL selten).

Zum Abgleich ein Select auf die Tabelle machen und die SQL-Texte in eine Textdatei schreiben, diese an den Rechner mit der 2. Mysql-Datenbank übertragen und ausführen, zB. über einen PHP-Script.

Sind nur 2 Datenbanken beteiligt und nur eine wird geändert, sollte das problemlos funktionieren. Gibt es mehrere Offline-User dann ist die Sache schon schwieriger, da im Zweifelsfall zu entscheiden ist, welcher Wert der richtige ist, etwa wenn User A Kunde Müller mit Nr 1000 angelegt hat und User B Kunde Meier auch mit Nr 1000. Da muss man ev. einige Arbeit investieren um die Sache sauber zum laufen zu bringen und entsprechende Regeln implementieren, Nummernkreise festlegen usw.

Ich denke auch, dass MySql für so etwas nicht unbedingt geeignet ist, dafür sollte man ein sichereres Datenbanksystem wie MSSQL, Postges oder Firebird einsetzen.

Gruß

Ralf
Ralf
  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 14:06 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz