Portál AbcLinuxu, 20. července 2025 01:03


Dotaz: master-master replication MySQL

26.1.2011 10:01 chinook | skóre: 28
master-master replication MySQL
Přečteno: 570×
Odpovědět | Admin
Ahoj potrebuju zvysit dostupnost i vykon MySQL. Do clusteru se mne jit nechce, protoze kazdy server je v jinem datacentru. Napadlo me u serveru synchronizovat apache a na kazdem serveru by kazdy apache vyuzival svoji DB. Proto je potrebuji mit v master to master replikaci. Nebude nejaky problem? Treba pokud jedna DB vypadne, tak to pak zase sesynchronizovat?

Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

26.1.2011 11:50 Sten
Rozbalit Rozbalit vše Re: master-master replication MySQL
Odpovědět | | Sbalit | Link | Blokovat | Admin
Pokud vypadne, pak to problém není. Problém může nastat, pokud dojde ke konfliktním transakcím, třeba při použití AUTO_INCREMENT. Je dost složité tohle ohlídat. Pokud to jde, doporučuji používat master-slave replikaci a rozdělit dotazy na čtecí (směřované na lokálního slave) a zapisovací (směřované na mastera)
26.1.2011 13:08 chinook | skóre: 28
Rozbalit Rozbalit vše Re: master-master replication MySQL
Pokud tomu neupravim klientskou aplikaci da se to nejak rozdelit na cteci dotazy a zapisy?
27.1.2011 22:23 Sten
Rozbalit Rozbalit vše Re: master-master replication MySQL
Teoreticky by se to dalo udělat nějakou heuristikou v knihovně poskytující spojení s MySQL, ale bylo by to dost náročné a těžko říct, jak moc by to bylo spolehlivé, takže pokud je možné tu aplikaci upravit, doporučuji ji upravit.
27.1.2011 22:40 chinook | skóre: 28
Rozbalit Rozbalit vše Re: master-master replication MySQL
Upravit ji nejde, protoze tam nebezi jen moje aplikace. K cemu ta replikace teda vlastne je, pokud nerozdelim dotazy na cteci a zapisovaci? Nikde jsem to jaksi nepochopil.
28.1.2011 08:52 a1bert | skóre: 23
Rozbalit Rozbalit vše Re: master-master replication MySQL
Upravovat low-level knihovnu pro pristup do mysql je samozrejme blbost... musite mit podporu primo v aplikaci.

Pokud jste na to nemyslel uz od zacatku a pripada vam pracne jednou projit vsechny sql query a rozdelit je na cteci a zapisovai, udelejte si nejaky wrapper a tam kazdou query parsujte - je to otazka par radku ale vykonu to zrovna neprida ;) dalsi moznost s obdobnou rezii je nejaka proxy, ve vsech pripadech ale pocitejte s tim ze to co zapisete na master se na slave objevi az za nejakou dobu...

pokud pouzivate nejakou jednoduchou logiku, slo by mozna pouzit i master-master (viz auto_increment_increment, auto_increment_offset)

muzu se zeptat o co se jedna, mam spoustu i docela "velkych" projektu a jeste jsem nemusel kvuli vykonu replikaci pouzit, vzdy se to dalo vyresit nejakou "optimalizaci" ;)
28.1.2011 10:22 dustin | skóre: 63 | blog: dustin
Rozbalit Rozbalit vše Re: master-master replication MySQL
Taky bych se divil, kdyby to nešlo zoptimalizovat a vyhnout se takovému "klastrování".
28.1.2011 10:18 blondak | skóre: 36 | blog: Blondak | Čáslav
Rozbalit Rozbalit vše Re: master-master replication MySQL
Zrovna předevčírem jsem to řešil, a v podstatě není ani problém s těmi AUTO_INCREMENT, jenom je potřeba na serverech nastavit na všech serverech auto_increment_increment stejně (počet strojů)
auto_increment_increment= N
auto_increment_offset   = 1-N
pak to bude chodit bez problému, protože se budou např pro 2 servery na jednom generovat liché a na druhém sudé čísla.
Každý problém ma své logické, snadno pochopitelné nesprávné řešení.
Heron avatar 26.1.2011 11:52 Heron | skóre: 53 | blog: root_at_heron | Olomouc
Rozbalit Rozbalit vše Re: master-master replication MySQL
Odpovědět | | Sbalit | Link | Blokovat | Admin
Pokud ti nejde o data, tak master master není problém. V jiných případech bych to silně nedoporučoval.
Heron
26.1.2011 13:09 chinook | skóre: 28
Rozbalit Rozbalit vše Re: master-master replication MySQL
Co tim myslis nejde o data?
Heron avatar 26.1.2011 13:18 Heron | skóre: 53 | blog: root_at_heron | Olomouc
Rozbalit Rozbalit vše Re: master-master replication MySQL
MySQL žádnou master-master replikaci neumí. Je to pouze bastl na úrovni dvou replikací master-slave (což u MySQL taky není žádná sláva) do kříže.

Takže by se to mělo používat pouze na nedůležitá data a v pouze v případě, kdy ti nevadí rozdílná data na těch dvou uzlech.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.