In meinen Programmen verwende ich zwei verschiedene Datenbankserver, die synchron vom Client bedient werden D.h. der Client schreibt auf beide Datenbankserver und beim Lesen wird der Inhalt von einem Server mit dem anderen verglichen. Beim Ausfall eines Servers wird direkt auf den anderen umgeschaltet und über eine Serveranwendung werden die beiden Datenbankserver nach Reaktivierung des ausgefallenen Servers später wieder synchronisiert.
Das andere ist die von mir verwendete Signaturtechnik, mit der jede Datenzeile auf Echtheit und korrekte Speicherung bestätigt wird.
Wegen dem Tätigkeitsbereich verlangen die das jetzt auch in der ERP Software. Alle anderen Anforderungen sind diskutabel, nur die Datenspeicherung wird als nicht diskutabel eingestuft.
Wenn das vom Client in eigenen Connections gemacht wird ist das alleine schon eine seltsame architektur, aber was macht man nicht alles für den Kunden, wenn der das will und dafür zahlt ....
Das mit der Datensatzsignatur klingt irgendwie nach jemand, der mal was von blockchain gehört hat und das unbedingt haben will, wofür auch immer ...
Bei unserem größten Gastroprojekt Kunden laufen die Replikationen multimaster je nach tabelle entweder zwischen 10 Mainserver oder zwischen allen 200 beteiligten Servern, jeder Client schreibt aber alles nur ein mal in eine Datenbank im lokalen Netz und die 10 bzw 200 firebird server tauschen das dann transaktionssicher untereinander aus. Wenn da ein client 200 connections brauchen würde, wäre das sicherlich kaum benutzbar. Und datenbankserverseitig haben wir ein komplettes log, alle insert/update/delete befehle, egal von welchem Client, dessen
ip, cinnection id und transaction id wir aber dadurch auch haben.
Das hilft uns bei der Fehlersuche deutlich weiter als nur eine checksumme, egal wie die berechnet wurde.
Warum das aber dann auch noch 2 unterschiedliche Serversysteme im Sinne von unterschiedlicher Datenbanksoftware sein müssen, ist mir dann komplett rätselhaft. Scheint ein echter Exot mit seinen Anforderungen zu sein, kann aber alleine dadurch ein langfristig interessanter Kunde für dich werden.
Wir haben ja einige Kunden auch im Medical Umfeld und selbst da hab ich von so was noch nie gehört. Warum einer der beiden Datenbankserver da was fehlerhaftes machen sollte, was man dann beim Abgleich mit dem anderen erkennt, ist mir auch nicht wirklich klar, außer das die Datenbankserver ja per definition unterschiedliche Metadatenstände haben müssen und deshalb eben auch mal per defintion dateninhalte anders speichern und ggf auch wieder zurückgeben.
Speicher einfach mal die Zahl pi in unterschiedlichen Datenbankservern mit theoretisch gleichen Datentypen und multiplizier das in einem Select mit einer anderen Zahl mit 5 Nachkommastellen. Da wird man durchaus deutliche Unterschiede im Nachkommastellenbereich finden. Das gleiche kommt auch gerne mal bei Sum befehlen mal vor, aber wer legt dann fest, wer recht hat?
Ich frag mich auch was passiert wenn die Daten bei deinen beiden Servern nicht synchron sind? nimmt man dann per random irgendeinen der Datensätze?