Hallo bemühte Delphianer,
danke erst mal für die Antworten.
Der Quelltext ist arbeit und auch danke dafür, jedoch bekomme ich bei 102 Tabellen da eher einen Schreibkrampf. Für kleine Datenbanken überhaubt kein Problem. Für die Programmierung eine eigenen Replizierungsmethode oder - anwendung hatte ich mir halt gewünscht, den kompletten Datensatz zu übertragen.
Es soll so eine Art Expertensystem sein. Also ein Helpdeskprogramm, dass per
MYSQL auf eine zentrale Datenbank zugreift und die Tabellen abgleicht und updatet. Dabei ist die Logik relativ einfach. Alle Clients dürfen nur ihre eigenen Beiträge ändern, neue Beträge verfassen und je nach Zugriffsrecht moderieren.
Alle Datensätze haben, ich nenne es mal so, personalisierte UID's als Primarykey und ein Änderungsfeld (Datum/Zeit).
MYSQL erzeigt ja leider nicht für jeden Client einen eigenen UID Teil, sondern nur für jeden Server. Und die vorderen 8 Bytes können bei 100 Client relativ schnell mal doppelt vorkommen. So nutze ich jetzt die Delphi
API UID Funktion und eben einen HASH aus Usernamen und Datum. So komme ich auf eine Schlüsselfeldbreite von 56 Byte. Da bei ca. 100 Clints schon gewisse Anforderungen an die Datenbank gestellt werden war ich von der Performance von
MYSQL relativ angetan. Auch die relativ einfache Verfügbarkeit auf einen Internetserver ist ein Argument.
So soll nun die Replikation laufen. Als erstes werden User/Usergruppen/Rechte Tabellen vom Server zum Client übertragen. Diese werden nur in der Masterdatenbank geändert, also nur online. So werden Sicherheitrelevante Daten nur in eine Richtung repliziert.
Alle Anderen Tabellen: Termine/TODO/Prüfmittel und eben die Fehlertabellen werden in beide Richtungen repliziert.
Zitat von
Bernhard Geyer:
Zitat von
stekohl:
Leider sind die Repl.-fähigkeiten von
MYSQL sehr beschränkt, ich bin da von
MSSQL und SYBASE doch ein wenig verwöhnt gewesen.
Was geht nicht. AFAIK haben meine Arbeitskollegen schon ein paar
MySQL-
DB's mit Replikation im Produktiveinsatz.
Tja, bei Sybase gebe ich eben die Tabelle an die ich repl. will und welche Felder der Tabelle Schlüsselfelder sind. Den Rest mach Sybase relativ gut selber. Großer Nachteil. Server relativ Wartungsintensiv und es kann nicht das Angebot von Provider genutzt werden. Und eben nicht für lau. Auch das die Installation von Sybase auf dem Rechner nicht ganz ohne ist.
I have a dream. Das ich eine lokale Datenbank aller XAAMP auf die Laptops packe, weil da ja nix am System prinzipiell geändert wird.
Nun aber die alles entscheidenen Frage. Wie kann ich diese Replizierungfunktion so rationalisieren, dass ich eben nicht für jedes Feld einer Tabelle per "Select" und "insert into" arbeiten muß. Ich würde halt gerne die Datensätze per Filter auswählen, was ja kein Problem ist, und eben dann den kompletten Datensatz hin und her schauffeln.
Ich weiß natürlich, dass jeder Datenbanklprofi beim kompletten kopieren von Datensätzen Ausschlag und Stickhusten bekommt, jedoch selektiere ich ja sauber vorher die benötigten Datensätze.
Die
MYSQL eigenene Replikationfunktionen per Transaktionlog schliesse ich Aufgrund der viele Clients erst mal als unpraktikabel aus. Ich würde halt nur ungern aus per
MYSQL Verbindung auf dem Server rumpfuschen.
So ich hoffe Ihr könnt meinen geistigen Ergüssen folgen. Die Formulierungen und Gedankensprünge gehen stark in Richtung Pete Klocke.
Danke für Eure Antworten.