phpbar.de logo

Mailinglisten-Archive

Abfrage mehrere Datenbankserver

Abfrage mehrere Datenbankserver

Michael Donning donning at informenta.de
Die Mai 6 10:37:04 CEST 2003


Hallo Michael,

> -----Original Message-----
> From: Michael Müller [Fa. ceyko] [mailto:newsletter at ceyko.de]
> habe ein kleines Problem, wie würdet ihr das lösen:
>
> Habe auf einem Server A eine Datenbank mit 4 Tabellen.
> Außerdem einen Server B mit einer Datenbank mit einer Tabelle.
>
> Nun möchte ich mit einem Script, das täglich ausgeführt wird Daten von
> der Datenbank auf Server A (alle 4 Tabellen) auf die Tabelle auf Server
> B schaufeln. Die Datenmenge wäre etwas groß, somit möchte ich nur die
> geänderten Daten übernehmen. Ich habe nun also einen Timestamp angelegt
> und überprüfe damit ob er sich geändert hat. Nun ist das ändern kein
> Problem, was mache ich jedoch wenn ein Datensatz auf Server A gelöscht
> oder hinzugefügt wurde?

Lösung A:
Replikation.

Lösung B:
Wenn Du auf Server A noch etwas Rechenzeit übrig hast, dann kannst Du mit
"Schatten"-DBs arbeiten. D.h. Du erstellst auf Server A eine Kopie der DB
(bzw. der 4 Tabellen), die den Zustand der Tabellen auf Server B
wiederspiegeln soll.

Nach erfolgten Änderungen in den Tabellen kann man dann direkte Abgleiche
mit der Schatten-DB fahren und gelöschte/neue ggf. auch geänderte (am besten
anhand des Timestamps) Sätze identifizieren und entsprechende SQL-Statements
draus basteln.

Neue und gelöschte Sätze kann man durch eine Verknüpfung beider Tabellen per
Left-Outer Join ermitteln. (Bedingung jeweils: primkey der 2. Tabelle ist
NULL)

Dann werden die Änderungen (SQL-Statements) sowohl in der Schatten-DB
angebracht als auch an Server B übermittelt.

Je nach Tabellengröße kann dieser Abgleich Server A natürlich "etwas
belasten".

Grüße,
Michael Donning

-- 
Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter
-->>  http://www.4t2.com/mysql 


php::bar PHP Wiki   -   Listenarchive