phpbar.de logo

Mailinglisten-Archive

Abfrage mehrere Datenbankserver

Abfrage mehrere Datenbankserver

Technik via echtwahr.com (NT7) technik at echtwahr.com
Die Mai 6 15:11:53 CEST 2003


Hallo Michael ,

ich habe jetzt folgendes gemacht!

Ich habe den Master & 1 Slave eingerichtet,
beide stehen bei unterschiedlichen Providern, Netzwerken
der Master ist ein Dual mit 1 GB RAM, SCSI
dieser wird jetzt die Schreibaufgaben für meine Replikations
Datenbank übernehmen und alle anderen Datenbaken abarbeiten,
der 2 Server Celeron 256 RAM wird jetzt nur einfache abfragen
für die Replikations Datenbank übernehmen.

Die Abfragen sind einfach gehalten, das Problem bei den abfragen ist nur,
das
es mehrere zig auf einmal werden können und sie  immer wieder en Master
lahmgelegt hatten.

Wie kann ich es denn machen, wenn jetzt der Slave voll-ausgelastet ist,
dass er die Abfragen wieder über den Master laufen läßt, oder einen 3
Server?!



Mit freundlichen Grüssen
      Thomas Goik
-----------------------------------------
Besuchen Sie uns:
http://www.echtwahr.de
http://www.echtwahr.com
----- Original Message ----- 
From: "Michael Donning" <donning at informenta.de>
To: <mysql-de at lists.4t2.com>
Sent: Tuesday, May 06, 2003 1:47 PM
Subject: RE: Abfrage mehrere Datenbankserver


> Hallo Thomas,
>
> > -----Original Message-----
> > From: Technik via echtwahr.com (NT7) [mailto:technik at echtwahr.com]
>
> > Bei unseren Server ist nur leider das Problem,
> > das Sie alle in anderen Standorten liegen, und
> > daher für uns die Traffic sehr wichtig ist!
> >
> > Also die frage ist, gewinn an Geschwindigkeit gegen  Kosten aufzurechnen
> >
> > Ich hatte jetzt gelesen, das bei vielen Änderungen an der Datenbank
> > die Replikation nicht der große Vorteil ist, was kann man denn sonst
> > noch machen, außer vielleicht Cluster (keine Ahnung davon)
> >
> > Ich habe in unserem System 3 Unterschiedliche Datenbanken,
> > davon würde ich aber nur 2 bei der Replikation benutzen.
>
> Ich verwende z.T. die von vorher in diesem Thread von mir beschriebene
> Lösung mit den "Schatten"-DBs. Der Vorteil ist, daß in den entstehenden
> Scripts nur "atomare" Befehle ausgeführt werden. Im Gegensatz zur
> Replikation, wo auch aufwendige Queries an die Ziel-Server übertragen
> werden.
>
> Da ich die Quelltabellen z.T. mit Queries (INSERT INTO ... SELECT FROM
...)
> komplett neu aufsetze, würde der Befehl so dann auch auf den Ziel-Server
> übertragen werden. Wenn dann das ein Web-Server ist, dann können die User
> erstmal ein ausgiebiges Kaffekränzchen abhalten. Außerdem schlagen
> DB-übergreifende Statements natürlich fehl, wenn eine der referenzierten
> DB's nicht auf dem Ziel-Server vorhanden ist.
>
> Die Methode mit dem Schatten-DBs belastet den Quell-Server natürlich
> gehörig, außerdem wird durch die Laufzeit (bei größeren DB) das minimale
> Replikationsintervall beschränkt. Dafür erhält man als Ergebnis schön
> (ver-)packbare SQL-Scripts, die dem Ziel-Server bei größeren Änderungen
auch
> in "appetitlichen Häppchen" serviert werden können, so daß dieser auch
> seinen regulären Tätigkeiten noch nachgehen kann.
>
> Ein weiterer Nachteil ist natürlich, daß man sich für diese Methode
> ersteinmal ein (bzw. mehrere) Script(s) basteln muß bzw Fremdsoftware
> finden+zukaufen muß.
>
> Hier mal ein Ausschnitt aus meinem Script, damit man mal eine grobe
> Vorstellung bekommt (ist kein GPL, daher kein komplettpost):
>
> #get deleted records
> #----------------------------------------
> $sql="SELECT ".build_prefixed("d.", at primcols).
>      " FROM $dest_db.$tabname d".
>      " LEFT OUTER JOIN $source_db.$tabname s ON
> ".build_join_prefixed("d.","s.", at primcols).
>      " WHERE s.$primcols[0] is NULL";
> $dsth=$dbh->prepare($sql);
> if (defined $dsth) {
>     $rc=$dsth->execute();
>     log_line("$tabname: $rc deleted records");
>     while (@drow = $dsth->fetchrow()) {
>         printtosql( "DELETE FROM $tabname WHERE ".
>
              build_where_val($dbh,"",\@primcols,\@pkisstr,\@drow).";\n" );
>     }
>     $dsth->finish;
> } else {
>     log_line("skipping $tabname delete, error on sql: $sql ");
> }
> #----------------------------------------
>
> Grüße,
> Michael Donning
>
> -- 
> Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter
> -->>  http://www.4t2.com/mysql
>
>


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


php::bar PHP Wiki   -   Listenarchive