Laden...

Datenbanken mit Replikat synchronisieren

Erstellt von susisorglos vor 6 Jahren Letzter Beitrag vor 6 Jahren 1.341 Views
susisorglos Themenstarter:in
43 Beiträge seit 2008
vor 6 Jahren
Datenbanken mit Replikat synchronisieren

verwendete Datenbanksysteme: noch <SQL 2014>, Originaldaten <FoxPro>, Replikat <H2>?

Müssen bei einer Replikation die Datenbanken identisch sein <FoxPro> <FoxPro>?

Gedanke hierzu:

  1. Frontend arbeitet nur mit den Daten im Replikat (lesen/schreiben)
  2. Datengewalt über beide Inhalte hat das Backend.

Nehmen wir an, das Backend muß nun im Tagesgeschäft die replizierten Datenbereiche in der Originaldatei bearbeiten!

* D. h. das Replikat wird vom Backend für weitere Arbeiten gesperrt,
* evtl. vorhandene bisherige Änderungen im Replikat werden durch das Backend erkannt
* und in den Originaldaten ausgeglichen,
* Originaldatei und Replikat sind wieder deckungsgleich,

** das Backend führt seine Änderungen in der Originaldatei durch,
** repliziert sie in das Replikat
** und gibt das Replikat an das Frontend wieder frei.

Zeitablauf:
Nach einem Tastenklick wird das Feld im Backend als repliziert erkannt/geprüft/gesperrt,
und alle mit * markierten Abläufe abgearbeitet, bis ** ausgeführt wird.

Nennen wir die entstehende Unterbrechung von seiten des Frontends "Verbindungsabbruch (zum Replikat)".

Nachdem das Frontend das Replicat wieder zur Verfügung hat, muss für das Frontend erkennbar sein, das evtl. Änderungen, die nun im Replicat erscheinen, vom Backend geändert wurden und unanfechtbar sind.

Bin ich auf dem Holzweg?
Welche Bücher sollte ich lesen?
Wer hat eine Idee oder einen Link für mich?

Ich lerne gern!

susi

VS 2017 Community

16.834 Beiträge seit 2008
vor 6 Jahren

Dass das Frontend die Datenbankschicht kennt, ist eine Verletzung.
[Artikel] Drei-Schichten-Architektur

In einer ordentlichen Architektur bleibt das Frontend unberührt, wenn die Datenbankschicht ausgetauscht, verändert oder erweitert wird.

susisorglos Themenstarter:in
43 Beiträge seit 2008
vor 6 Jahren

@Abt
Vielen Dank.
Ist ein Replicat zwischen unterschiedlichen Datenbanken möglich?

VS 2017 Community

T
2.224 Beiträge seit 2008
vor 6 Jahren

@susisorglos
Je nachdem wie die Replikation umgesetzt wird, können es theoretisch auch unterschiedliche Datenbanktypen sein.
Wenn ich aber z.b. direkt über den DB Server die Daten auf einen Slave replizieren lasse, dann muss das Ziel auch in der Regel die gleiche Datenbank sein.
Sprich eine Replikation von MS Sql geht dann nur zu MS Sql.

Wenn es aber über entsprechende Tools läuft, wären auch unterschiedliche Typen möglich.
Leider sind mir da keine bekannt.

Alternativ könntet ihr einen OR Mapper nehmen und alles im Code umsetzen.
Wenn der OR Mapper flexibel genug ist mit zwei Datenbanken zu arbeiten, dann kann man dies entsprechend lösen.

T-Virus

Developer, Developer, Developer, Developer....

99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.