ma pusti ti sta ja kazem, ako ti mislis da ce to da ti radi i imas vremena da se zezas, sto da ne probas ... bolje da sam dodjes do zakljucka zasto ne radi (ili jos bolje, da ga namestis da radi :D )
replikacija na mysql-u je generalno one to many ... iliti jedan master i mnogo slave-ova... to je odlican setup za
- skaliranje (upise radis na jedan server a upite radis sa koliko hoces servera, obzirom da vecina aplikacija ima mnogo vise upita i da su upiti obicno mnogo zahtevniji od upisa ovo je vrlo cesta upotreba replikacije)
- failover, slave koristis za read only a na master tuces upise, ako se nesto desi slave-u ti krenes i sa mastera da radis upite ali ako crkne master ti promovises slave u master i nastavis da ga koristis za upis i citanje a kada popravis master onda on postane novi slave i tako dok onaj master ne crkne, odradis failover na ovaj koji sada promovises u master ...
- bekap (imas jedan slave koji ti sluzi samo za bekap)
...
e sad, master-master replikacija na mysql-u (osim za klaster ali to je potpuno druga prica) nije podrzana per se nego se pravi "na foru". Takav koncept radi "samo u nekim slucajevima" i radi na foru tako sto recimo ako imas 2 servera stavis da ti je inkrement na auto_inc polju 2, prvi krenes od 1 a drugi od dva tako da ce ti svi inserti na master1 masini biti 1 3 5 7 ... a na master2 2 4 6 8 .. tako da "teoretski" one nece da pregaze jedna drugu. Problem je ako ti imas nesto tipa
Code:
insert into `t1` (x) values (10);
select ...
to ce da ti radi .. tu i tamo select nece da ima "sve" podatke al sta te briga ... ono sto je problem je ako imas
Code:
insert into `t1` (...) select ...
ti sada insertujes neke podatke i to sto insertujes zavisi od nekog select-a sto su ti duze masine "out of sync" to ti se vise razlikuju podaci na njima da bi na kraju replikacija pukla sama po sebi a ti gubio vise vremena na popravljanje replikacije nego na sve ostalo ..
geo replikacija je mnooogo velika za*ija u svakom sistemu... posebno ako treba da bude dvosmerna... to uopste nije jednostavan problem za resiti i obicno ga je lakse resiti u aplikaciji nego na nivou baze