mysql master-master replikáció

Sziasztok. Master-Master replikációt szeretnék csinálni két mysql 4.1.20 szerver között. Az lenne a kérdésem, hogy mennyire megbízható? Adatok veszhetnek-e el?
Ha valaki foglalkozott ilyen típusú replikációval szeretném ha megosztaná a tapasztalatait.
Köszönöm előre is.

Hozzászólások

Ezt körkörös replikációnak híjják. A lényege hogy az A gépnek a B a mastere és fordítva. Mindkét gépen kell grantelni egy replication slave juzert a másiknak. Egyelőre teszt szinten megy egy ilyen nálunk failover-cluster jelleggel. Adatok elvileg veszhetnek el, ha az aktuális használatban levő masteren olyan insert van folyamatban amit még nem tolt át a slave(ek)nek és épp akkor dobja el magát. Ez persze forgalomfüggő mennyiségű rekordot jelent. A jó hír viszont, hogy ha épp ledöglik egy akkor utána mikor feljön szépen "utoléri" a másik gépet. Ezt mondjuk még erősebb teszteknek kell kitegyem (pl: kihúzom a 230-at a használt masterből és akkor mivan).

A master-mastert gondolom erre akarod te is használni, mert ennek ilyen esetnél van igazán értelme szerintem. Mi MySQL 5.1-el használjuk. (Tudom hogy béta, de van funkció ami abból kell és pont.) A használt oprencer FreeBSD 6.2 és Sun Fire X2100-ak a gépek. Az virtuális IP-t CARP-al menedzseljük.

Nekem nem úgy tűnt, hogy erős alkalmazás oldali támogatás nélkül különösebben jól használható lenne.
Nincs például konfliktuskezelés, azaz megáll a replikáció, ha constraint violation lép fel.

Változott ez azóta?

Én SpamAssassint szerettem volna így használni (bayes autolearn, AWL), de legfeljebb 2 másodperc alatt eljutott idáig.

Mi szigórúan CSAK az egyik masterre (master-master :) ) akarunk írni/olvasni alaphelyzetben, pontosan a fenti miatt. A lényeg inkább a realtime adattükrözés, hogy minimális idő alatt online legyen újra ugyanaz a db és a kliens oldalon maximum az alkalmazás újraindítása kelljen.

Én terhelés megosztásra szeretném használni. Van egy weboldal ami alatt van egy 8 Gb-os adatbázis. Round Robin -nal a dns-ből két szerverre írányitanám a forgalmat. Mindkét szerverre felteszem a weboldalt és az adatbázist és master-master replikációt csinálok az adatbázisok közt.

Szerintetetek ezt így meg lehet oldani?

Inkább tedd az egyik gépre a weboldalt és az erősebbre a mysql-t, illetve igény szerint. A context switchek és egyebek miatt azzal nem nyersz ha ugyanazon a gépen malmozik az SQL és a webszerver is.

kérdések:
- milyen jellegű az adatbázis terhelés? selectek vannak elsősorban, vagy adatváltozásos kverik
- mekkora a webszerver oldalon a terhelés? hány párhuzamos szál, hány százalék dinamikus
- kivitelezhető-e bármilyen kesselés beiktatása a weboldalba, ami az sql zabáldát csökkenti?

nem valami jo a dns based round-robin szerintem erre a celra.
Sokkal jobb eredmenyt erhetnel el sqlrelay-jel, ami raadasul a vazoltnal tobb lehetoseget is hordozhat magaban - pl hogy nem lesz szukseged master-master felallasra, mert az iras jellegu muveleteket mindig az egyiken vegzed, de mindkettorol olvasol. Erdemes elolvasni a mittud reszt.

Itt talalod:
http://sqlrelay.sourceforge.net/