Automatischer Abgleich der Datenbanken

Begonnen von teflon, 09 Mai 2002, 01:49:37

⏪ vorheriges - nächstes ⏩

0 Mitglieder und 1 Gast betrachten dieses Thema.

teflon

Hallöchen, ich habe zwei Datenbanken auf verschiedenen Servern/Anbietern laufen und würde sie gerne automatisch synchronisieren. Gibt es eine möglichst einfache Möglichkeit bei Dateneingabe auf Server 1 eine Kopie in die Datenbank auf Server 2 zu schreiben? Ist nur als Ausfallsicherung gedacht und sollte automatisch funktionieren.
Danke für Eure Mühe!
Teflon

Micro

Ja, diese Möglichkeit gibt es wirklich.

Nur kann man diese leider nicht verwenden.

Das Problem ist, viele Programmierer von Modulen halten sich einfach nicht an grundsätzliche Regeln der Programmierung, die hier im Nuke verwendet wird. Von daher hab ich dieses Backup wieder verworfen. Zuviel müsste man kontrollieren und dementsprechend verändern.

Es gibt noch etwas das es zu bedenken gilt. Ich kann zwei Datenbanken gleichzeitig füllen. Fällt eine aus und man schaltet auf die zweite um, muss man die erste DB später löschen und den Inhalt der Backup DB auf die Haupt DB wieder rüberkopieren. Auch würde es, wenn die eine fehlt, laufend zu Timeouts kommen.
Alles in allem nicht gerade sehr performant um ehrlich zu sein. Nuke produziert da eh schon viel zu viele Fehler und Traffic.

Mirko

JensWagenknecht

Kann ich nur wiedersprechen.
Es gibt bei jeder Programmiersprache die Möglichkeit, müßte wohl auch bei PHP geben, alle Tabellen und Spalten zu durchlaufen und auf eine andere zu spiegeln.
Ich habe es z.B. bei Access so gehabt. Egal was für Tabellen dazu kammen, es wurde alles kopiert.
Das reine Spiegeln einer Datenbank dürfte noch weniger das Problem sein.

Micro

Ja klar, das reine Spiegeln, also auf der Maschine selbst ist tatsächlich kein Problem. Leider hat man eben nicht immer einen eigenen Server im Netz hängen.
Das Problem hat man erst wenn es zwei verschiedene Datenbanken an zwei Standorten betrifft.

Die Tabellen auslesen und immer wieder rüberkopieren wird nicht so ohne Probleme vonstatten gehen meiner Meinung nach. Denn der voreingestellte Timeout in der php.ini wird immer wieder zu Abbrüchen in der Datenübertragung führen. Das passiert bei Datenbanken jenseits der Größe von ca. 6MB. Deshalb dachte ich ja auch an eine "heiße" Spiegelung. Sprich realtime zwei Datenbanken beschreiben. Das ist möglich auf Grund der zentralen Programmierung im Nuke. Aber weil sich eben viele Programmierer nicht mit den Funktionen auskennen, sind gerade hierbei eine große Fehler gemacht worden. Und die würde dieses Konzept dann nur in Fragmenten unterstützen.

Es sei denn wir haben uns beide jetzt "Mistverstanden" Jens ;o), und Du meintest noch einen anderen Weg.

Mirko

JensWagenknecht

Mit MySQL kenne ich mich nicht so aus, aber es müßte "sanft" gehen.
Sprrich, Du läßt mit einem Script (vielleicht Perl besser) die Tabellen feststellen und auslesen. Alles einzel runterladen lassen ( besser als direkt rüber) und direkt wieder zum anderen hoch. Geht natürlich nicht automatisch.
Oder in bestimmten Zeitabständen einzelne Tabellen rüber und bei einem TimeOut wiederholen.
Ist halt tüchtiges basteln angesagt. Aber man kann es danach für alles nehmen, egal welche DB.

Achso, irgendwan gibt es natürlich Ärger mit den Anbietern. Der Server geht bei so etwas tüchtig in die Knie.

[Bearbeitet am: 10/5/2002 von JensWagenknecht]

Micro

ZitatAchso, irgendwan gibt es natürlich Ärger mit den Anbietern. Der Server geht bei so etwas tüchtig in die Knie.

Hmm, das ists ja.
Wäre ne Idee als Wahlprogramm. Jeder seinen eigenen Server ,o)

Ich denke das kann man sich mal für die Zukunft merken das Thema. Dürfte sicher für den ein oder anderen interesant sein. Nur ist es eben Aufwand der nicht so recht gerechtfertigt ist.. bis jetzt ...

Mirko

teflon

Danke für Eure umfangreichen und schnellen Antworten. Ich habe wirklich nicht mit soviel Soforthilfe gerechnet!
Werde es dann wohl wieder "von Hand" probieren und entsprechend Abgleichen. Danke auch für den Hinweis auf den DB-Traffic, dies hatte ich völlig außer 8 gelassen ;-)
Mein Hoster wird mir ganz schön was pfeifen...
cu Teflon

JensWagenknecht

Ich weis ja nicht in wie fern Du Perl-Scripte ausführen darfst.

Es gibt da verschiedene welche Dir die ganze Datenbank local auf dem Server speichert und Du brauchst es nur noch per FTP runterladen oder auf eine andere Datenbank einspielen.
Besser wäre aber bei Dir zu Hause speichern und Du spielst es da ein wo Du es später brauchst.
Das einzige ist, das Dein Anbieter das ausführen von Perl Programmen und sqldump erlaubt. Damit ist das Zeitlimit von PHP kein Problem.

teflon

Jau, Perl und andere freie CGI Progs sind möglich! Hast du einen speziellen Vorschlag für das Skript? Ich werde aber auch sonst was im Netz für mich finden! Vielen Dank!
Teflon

JensWagenknecht

Ja habe ich.
Schau mal hier:

http://sourceforge.net/projects/mysql-cbn
Sonst hätte ich noch von
http://freshmeat.net/
eine cgi datei die nennt sich:
MySQL Backup v2.5

müßte alles gehen. wurschteln auf Wunsch automastisch wen Cron geht. Oder man ruft diese per PHP auf und fertig.