Thema: Delphi Datenbanken abgleichen

Einzelnen Beitrag anzeigen

hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: Datenbanken abgleichen

  Alt 22. Feb 2007, 10:01
Hallo,

das läuft normlerweise über Replikation,
es gibt für Firebird einen freien Replikator (google),
da muss man sich nur anmelden.

Die Replikation selber läuft nicht direkt per SQL,
sondern über ein eigenes Programm (diesen Replikator) (also c++, Delphi,
weiss nicht, ist kein open source).

Das Grundprinzip ist "einfach"
1. Sorge für eindeutige Nummernkreise bei den Primärschlüsseln
der einzelnen Datenbanken (geht bei Generatoren ja einfach)
1. DB beginnt z.B. bei 1, 2. DB bei 10 Mio, 3. DB bei 40 Mio.
2. Protokolliere alle Änderungen aller DB's
Trigger, Protokolldatei
3. Trage alle Änderungen aller DB's in die jeweils anderen ein

Probleme gibt es, wenn 1 Datensatz von zwei Nutzern "gleichzeitig"
geändert wurde. Ausserdem mit unique Key (Auftragsnummer),
dass hattest du aber über Serien ja schon gelöst.


Wenn es hier "nur" darum geht, neue Angebote einzutragen,
würde ich ein Synchronisationstool schreiben.
Das fragt in der Haupt-DB nach, ob das jeweilige Angebot
schon drinsteht, wenn nicht wird es eingetragen,
wenn es drinsteht, wird auf Änderungen geprüft (synchronisiert).

Positiv macht sich hier ebensfalls eine Protokolltabelle
bemerkbar, wo im einfachsten Fall Datum, Tabellenname, prim key
der Änderung drinsteht.


Heiko
Heiko
  Mit Zitat antworten Zitat