Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

MySQL - best practice

[es] :: MySQL :: MySQL - best practice

Strane: 1 2

[ Pregleda: 5982 | Odgovora: 23 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.mysql.com.

Sajt: mysql.rs


+2377 Profil

icon MySQL - best practice17.11.2008. u 13:30 - pre 187 meseci
Mislim da bi bila zgodna ovako jedna tema, da bi izbegli skupljanje "korisnih" informacija po raznim temama.... Ovo bi trebala da bude skupina "univerzalnih" saveta za MySQL.

--
za storage system ... generalno, raid + battery backup up cache, mnogo spindlova, nekoliko lunova ... data i log na razlicite lunove

--
cak i ako nemate raid, data i log stavite na razlicite fizicke diskove

--
mysql podrzava incremental backup tako sto se za "incremental" deo koristi binlog... ako vam crkne disk, mala vajda od tog binloga koji je crkao zajedno sa podacima :( ... koristite DRBD za "replikaciju hard diska" i binlog stavite na tu particiju

--
mysql high availability resenje za "male pare" .. znamo da master master replikacija ima svoje mane, jednostavna "sinhrona" replikacija za mysql moze da se izvede sa myisam tabelama (ovo ne radi ako koristite innodb tabele)
- podignete DRBD + HA u master master rezimu (replikacija diskova)
- formatirate DRBD particiju nekim klastering filesistemom (na primer gfs2)
- podignete na ta dva drbd noda mysql "bez innodb-a"
- upalite myisam external locking i stavite data dir da pokazuje na onaj fgs2

voila, imate iste podatke na dva mysql-a, mana - nemate transakcije, strane kljuceve ... dakle myisam only

--
ako koristite innodb tabele, 70-80% raspolozive memorije potrosite na innodb_buffer_pool

--
nemojte koristiti query_cache veci od par megabajta ako imate dosta upisa u bazu, pri svakoj promeni podataka query cache mora da se invalidatizuje, na velikom query_cache-u to moze da bude veca "dara nego mera"

--
procitajte sta i kako radi memcached


 
Odgovor na temu

Tyler Durden
Tyler Durden
Beograd

Član broj: 4312
Poruke: 3379
*.verat.net.



+1365 Profil

icon Re: MySQL - best practice21.11.2008. u 09:16 - pre 187 meseci
Znam da je malo offtopic, ali da li imaš iskustva sa cluster file sistemima, tipa GFS, OCFS2, CXFS... Ili možda nešto tipa Gluster, Lustre i sl.
Beneath civilization's fragile crust, cold chaos churns...
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.mysql.com.

Sajt: mysql.rs


+2377 Profil

icon Re: MySQL - best practice21.11.2008. u 10:46 - pre 187 meseci
ne preterano ... samo gfs2 u kombinaciji drbd+mysql sa myisam tabelama .. sa ostalima nisam imao kad da se igram mada ljudi iz linbit-a (oni prave drbd) kazu da ocfs2 radi isto odlicno. cxfs je cool ali ima neke "nedostatke", al tesko da mogu da kazem "koje" posto ga nikad nisam koristio

 
Odgovor na temu

Tyler Durden
Tyler Durden
Beograd

Član broj: 4312
Poruke: 3379
*.verat.net.



+1365 Profil

icon Re: MySQL - best practice21.11.2008. u 11:59 - pre 187 meseci
Pitam zato što bih uskoro trebao da radim jedan projekat gdje će mi trebati cluster file sistem, a sa GFS-om do sada nisam imao baš previše pozitivno iskustvo.
Doduše, u pitanju je bio GFS a ne GFS2 (jel izašla stable verzija dvojke?) i ono što mi je najviše smetalo jeste prevelik load koji se pravio na serverima zbog GFS-a.
Beneath civilization's fragile crust, cold chaos churns...
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.mysql.com.

Sajt: mysql.rs


+2377 Profil

icon Re: MySQL - best practice21.11.2008. u 14:34 - pre 187 meseci
gfs2 bi trebalo da je ok mada gledajuci http://sources.redhat.com/cluster/wiki/ nije jos uvek "GA" ...
momci iz linbita kazu da je ocfs2 jos bolji ali ja ga u zivotu nisam probao tako da ne mogu da ga komentarisem ... za cxfs nemam bas nikakve informacije .. xfs je odlican ali cxfs je clustered verzija - pojma nemam koliko je dobra

znam da su ljudi testirali i da imaju u production-u drbd + gfs2 i drbd+ocfs2 sa mysql-om i to je to .. kako radi i koji su tacno problemi - nemam pojma, mada cu uskoro morati da se "mucim" sa bas te dve varijante takodje i da pravim neke testove, tako da cu negde pocetkom sledece godine verovatno moci da ti dam mnogo vise informacija ... za sada mogu samo da prenesem ono sto sam cuo od ljudi koji to rade ..


EDIT: ovo je generalno ista poruka kao i ona od malopre samo u malo vise reci ..
 
Odgovor na temu

Schmidt
RHCE

Član broj: 80784
Poruke: 647
*.poen.net.



+10 Profil

icon Re: MySQL - best practice13.06.2009. u 22:47 - pre 180 meseci
Budim staru temu ali mislim da je bolje da ovdje pitam. Ako nije, modovi slobodno prebacite ovaj post gdje god mislite da je ok.

@bogdan:

Da li si se "mucio". Ima li nekakav update? :)

Da li je neko radio sa GPFS (IBM)? Posto vecinom radim na Centos based serverima favorit mi je GFS2, ali to mi je prvi cluster u zivotu i stvarno bih cijenio bilo kakav odgovor/prijedlog/savjet.
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: MySQL - best practice13.06.2009. u 23:21 - pre 180 meseci
mucim se ja od kad ustanem pa dok ne legnem, a i onda ... oce to kad preteras sa tezinom :(

no da se vrnemo na temu, da, testirao sam drbd + gfs2 i drbd+ocfs2 sa mysql-om, zakljucio da je "upotrebljivo sa mysql-om" (myisam only, etc etc ..) ali da nije bas isplativo resenje. za mnogo konkuretnog pisanja, izgubis previse vremena na external lock da bi isplatio 2 masine, a ako oces multple read onda opet ima mnogo isplativijih i brzih resenja (memcached, memcached, memcached .. jesam spominjao memcached?)

tako da .. u "mom poslu" .. ti clustering file sistemi su beskorisni ... realno, cak i drbd kao takav nije 1/1 resenje, ja se posle mnogih testova, mnogo klijenata i dosta vremena provedenog u linbitovom ofisu i Becu i sa njima na telefonu, mnogo vise priklanjam perkoninoj filozofiji po tom pitanju nego sun filozofiji... drzanje podataka na drbd-u je prosto - gubljenje resursa .. mnoooogo je isplativije imati master slave replikaciju sa binlogom na drbd-u tako da u slucaju da master rokne postoji binlog odakle slave moze dalje da iscita podatke i dodje u isto stanje gde je bio master kad je rikno i postane novi master ... malo kompleksnija ali mnogo brza i sigurnija procedura...

sto se tice SAN/NAS resenje i mountovanja istog file sistema sa dve masine pa koriscenja clustering resenja u tom slucaju, iskreno - ja mislim da je to cista glupost i jako lose resenje .. ja jesam navikao na 100% proof shared nothing resenje ali svejedno .. klastering koji je zasnovan na deljenom disku je po meni glupost na toliko nivoa da boli .. no, necu o tome da pricam, niti je ovde mesto za tu pricu niti imam potrebu bilo kome menjat misljenje :) "pod stare dane"
 
Odgovor na temu

Schmidt
RHCE

Član broj: 80784
Poruke: 647
*.poen.net.



+10 Profil

icon Re: MySQL - best practice14.06.2009. u 03:09 - pre 180 meseci
Dobro, mozda sam bio malo neprecizan ili mozda generalan. Nisam pitao zbog baze, pitao sam zbog samog iskustva sa file systemom, utiske vezane za njegov rad, stabilnost, alatke za popravak u slucaju problema itd. GFS2 ili nesto slicno mi prvenstveno treba za backup i za mail servere, odnosno vise smtp/pop3 servera. Trenutno mi se mail serveri vrte na NFS-u, a zelim da mail storage prebacim na SAN storage, a NFS zamjenim GFS-om ili necim boljim ako to bolje postoji i ako je GPL. Baze ce vjerovatno biti na SAN-u, ali jedan server po bazi, cak i ako budem radio cluster baza opet ce biti odradjeno kao da sam clusterizovao vise racunara, da li ce ti racunari imati svoje baze na svom disku ili na SAN-u to je manje bitno. Dakle, uz izvinjenje jer sam bio nejasan u prethodnom postu, pitanje bi bilo kakva su iskustva sa GFS2 i OCFS2? Prednosti? Mane?

Sto se tice tezine, welcome to the club :)
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: MySQL - best practice14.06.2009. u 05:24 - pre 180 meseci
Citat:
Schmidt: Dobro, mozda sam bio malo neprecizan ili mozda generalan.


yup

Citat:
Nisam pitao zbog baze, pitao sam zbog samog iskustva sa file systemom, utiske vezane za njegov rad, stabilnost, alatke za popravak u slucaju problema itd.


ja sam ih gledao samo iz prizme mysql-a. "alatke za popravak" su potpuno beskorisne, ako rikne FS jedino sto onda radis je juris bekap, "spasavanje" podataka za FS-a je u tom slucaju beskorisno... posebno iz perspektive innodb-a tako da ja na to nisam trosio vreme... ono sto sam ja gledao je "stabilnost" i "brzina" a najvise "fnkcionalnost" ... vezano za stabilnost - stabilni su super, ali obrati paznju da na ja celom fajl sistemu imam par direktorijuma i nekoliko fajlova + na jednom serveru, celom sistemu pristupa citav jedan proces :) ... to i nije neki jak test stabilnosti tako da ne verujem da ti je taj info koristan. vezano za brzinu, mene zanima IO blocking ... to tebi za realan rad ne pravi toliki problem tako da ti ni taj test ne znaci mnogo .. realno svi oni imaju tuzno ocajan za plakati io .. opcije su opet vezane za locking ... da li mozes da lokujes ceo fajl ili page ili sektor ili region od - do ... tu su "naizmenicno" .. nijedan nema kompletnu funkcionalnost .... sve u svemu, testiranje za db i za "general use" ... ne moze da se poredi ... (da ne spominjemo da je ovo forum o mysql-u ne o fajl sistemima :) )

sve u svemu, tesko da sam ti dao iole upotrebljiv info ...

ono sto mogu da ti kazem "iz druge ruke" je da ima isp sa 10 mail servera koji tera gfs2 ... nemam pojma sta i kako tacno .. ali su "zadovoljni"
 
Odgovor na temu

cveticmilan
System administrator
Beograd

Član broj: 105312
Poruke: 161
*.nb.rs.

Sajt: www.nb.rs


+8 Profil

icon Re: MySQL - best practice18.02.2011. u 14:28 - pre 160 meseci
bogdan.kecman je potpuno u pravu. Mysql na GFS2 je katastrofa, "radi" ali otuzno. Mucio sam se 2 meseca i davao nadu ali uzas. Toliko.
 
Odgovor na temu

cveticmilan
System administrator
Beograd

Član broj: 105312
Poruke: 161
*.nb.rs.

Sajt: www.nb.rs


+8 Profil

icon Re: MySQL - best practice19.02.2011. u 09:10 - pre 160 meseci
ajde da ne otvaram novu temu posto je prilicno isti problem. Kao sto rekoh gore, sve sam uradio ali kad sam dosao do Mysql-a nastaje kosmar. Da objasnim:

dakle digao sam Red Hat cluster na vmware ESXi 3.5.

Imam 4 noda.

Na svakom ima instaliran apache koji svi zajedno gledaju GFS2 koji im je uvucek preko ISCSi sa Openfilera. LVM i sve sto se tice toga radi super

Quorum particiju takodje uvukao preko Iscsi-a sa Openfilera i to takodje radi super. Imam 7 glasova a 4 je potrebno da bi claster preziveo (4 glasa nose nodovi i 3 quorum).
Dakle dovoljan je i jedan nod da ostane i radice cluster dok se ovi fensuju tj rebootuju.

Jedan Failover domen, jedna IP adresa i cim padne ili adresa ili apache servisi se alociraju na drugi nod u realtime i to radi super. Fence sam resio nekom ludom skriptom.

Sve mreze bondovane, raid i ostale stvari su manje bitne za glavno pitanje.

Kako da resim Mysql da ga imam u HA. Dakle pokusao sam kao sto pise gore, svaki nod po 1 sql server koji svi gledaju isti /var/mysq/lib na GFS2i to je uzas.

Da li da idem sa Mysql clusterom u okrivu RH clustera nezavisno ? Da li uopste da teram master/master ili da idem na master/slave ?

AIM je dakle da imam 2 apache, dve IP (resio sam da to resim na nivou DNS-a sa round robinom) i tako postignem HA, load balansing itd ...

Znaci stalno zuje 2 httpd-a u dva odvojena failover domena a klienti naravno prisupaju jednom ovamo jednom onamo ali glavni problem je sto sva 4 apacha treba da vidi isti sadrzaj sql-a u svakom momentu i naravno ako padne neki sql , ovaj kapira , gasi , pali , inkrementira bazu itd itd ....


Svaki savet je dobro dosao. Nadam se da sam bio dovoljno jasan.

Koristio bih 5.5 mysql ilil 7.1.10 mysql sluster



 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: MySQL - best practice19.02.2011. u 23:34 - pre 160 meseci
mysql cluster ti NECE resiti pitanje.

1. mysql cluster nije resenje namenjeno virtualnim serverima, naprotiv, namenjen je sistemima gde je availability neprikosnoven, koja je poenta HA resenja ako je celo na jednom serveru
2. mysql cluster nije "normalan" mysql, ako imas JOIN upite mysql cluster je 10-400 PUTA sporiji od obicnog mysql-a, zavisno od toga koliko je kompleksan join
3. mysql cluster nema nikakve veze sa redhat cluster-om ...
4. master/master i master/slave nema nikakve veze sa mysql cluster-om

procitaj: http://www.mysql.rs/2009/10/mccge/ a onda zatim procitaj: http://www.mysql.rs/2009/10/sta-je-to-klaster/

dalje, obican mysql ...

sta dobijas time sto si stavio rh cluster na esx ?! ne kontam, sedi ti sve na jednoj masini, ako ta masina rikne - riknulo ti je sve .. gde je tu HA ? ili su ti 4 noda 4 fizicke masine? sta ce ti onda esx ?

ono sto tebi verovatno treba (ali koristis pogresnu terminologiju) je da ubacis mysql u tvoj HA i napravis neki failover. Da bi ti pomogao "kako" to da uradis, moraces malo bolje da objasnis sta si tacno uradio (neka slika ne bi skodila :D )


 
Odgovor na temu

cveticmilan
System administrator
Beograd

Član broj: 105312
Poruke: 161
*.dynamic.sbb.rs.

Sajt: www.nb.rs


+8 Profil

icon Re: MySQL - best practice20.02.2011. u 16:41 - pre 160 meseci
bogdan.kecman: mysql cluster ti NECE resiti pitanje.

Citat:
1. mysql cluster nije resenje namenjeno virtualnim serverima, naprotiv, namenjen je sistemima gde je availability neprikosnoven, koja je poenta HA resenja ako je celo na jednom serveru


ovo mi bas i nije najjasnije, zasto nije namenjen virtualnim serverima? Hoces da kazes da ako imam mysql cluser na virtualnim masinama da nece raditi isto kao i na fizickim.

Citat:
2. mysql cluster nije "normalan" mysql, ako imas JOIN upite mysql cluster je 10-400 PUTA sporiji od obicnog mysql-a, zavisno od toga koliko je kompleksan join


ok, jasno.

Citat:
3. mysql cluster nema nikakve veze sa redhat cluster-om ...


Znam, niko nije ni rekao da ima veze. Zato sam i postavio pitanje

Da li da idem sa Mysql clusterom u okrivu RH clustera nezavisno ?

Citat:
4. master/master i master/slave nema nikakve veze sa mysql cluster-om


Znam, niko nije ni rekao da ima vec sam pitao da li je bolje to da koristim ili mysql cluster

na ovako nesto sam mislio da je najbolje resenje

http://www.howtoforge.com/sett...es-with-mysql-5-on-debian-etch



super tekstovi, hvala.

Citat:
dalje, obican mysql ...

sta dobijas time sto si stavio rh cluster na esx ?! ne kontam, sedi ti sve na jednoj masini, ako ta masina rikne - riknulo ti je sve .. gde je tu HA ? ili su ti 4 noda 4 fizicke masine? sta ce ti onda esx ?


U mojoj infrastrukturi je sve virtualizovano i nemamo ni jedan fizicki server (hvala bogu). U pitanju je 6/7 ESXi a uskoro ce ih biti mnogo vise i to ESX-a. Dakle odgovor, trenutno mi je RH cluster na jednom ESXI serveru dok testiram i montiram a posle naravno da cu razbacati nodove po razliticitim ESX serverima sto je i logicno. Tu je HA.


Citat:
ono sto tebi verovatno treba (ali koristis pogresnu terminologiju) je da ubacis mysql u tvoj HA i napravis neki failover. Da bi ti pomogao "kako" to da uradis, moraces malo bolje da objasnis sta si tacno uradio (neka slika ne bi skodila :D )


meni zaprato tj. tacno treba scenario broj 2, bas kao sto si opisao ovde

http://www.mysql.rs/2009/10/sta-je-to-klaster/

[Ovu poruku je menjao cveticmilan dana 20.02.2011. u 19:37 GMT+1]
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: MySQL - best practice20.02.2011. u 19:26 - pre 160 meseci
Citat:

zasto nije namenjen virtualnim serverima


tako je dizajniran. mysql cluster je vrlo specificno resenje.

Citat:
meni zaprato tj. tacno treba scenario broj 2


pretpostavio sam, zato sam ti i rekao da zaboravis mysql cluster. gledaj na mysql cluster kao na no-sql resenje .. posto on jeste ACID ... ali sto se performansi tice ima skoro sve probleme no-sql baza ... namely - relacije :D jedan ozbiljan join koji ce na mysql-u da traje ispod sekund ce na mysql clusteru da traje nekoliko minuta :(

e sad, sto se samog hpc/lb resenja tice, imas 2 nacina da to izvedes
1. master + nekoliko slave-ova. obavezno semisync replikacija izmedju mastera i slaveova (dakle 5.5), najbolje ako mozes unutar aplikacije da resis read/write razbijanje po serverima tako da master opterecujes samo sa pisanje a da na slave servere rasporedis citanje... mada mozes i da koristis proxy + rw lua script ... treba ti sistem za failback koji moze da se odradi i sa rh cluster managerom (koji sigurno poznajes bolje od mene posto sam ja vise trosio HB)

2. master-master lanac .. ovo je malo kompleksniji setup ... ista prica kao i [1], semisync replikacija, neki failover system kroz rh cluster manager ... ono sto je tu najveci problem je sto master-master lanac ume da pravi probleme .. obavezno mixed ili raw replikacija, sa statement ces da puknes ko zvecka ... i ako aplikacija nije vec unapred napravljena, mora da se obrati ozbiljna paznja na autoincrement ponasanje u takvom setapu .. najveci problem doduse nema veze sa mysql-om vec sa glupim developerima koji "ocekuju" da se neke stvari desavaju onako kako su "oni zamislili" (pa recimo ocekuju da je slog sa vecim ID-em uvek "noviji" od sloga sa manjim, sto u ovom slucaju ne mora da bude tacno) .. opet UUID prica koja generise unique id po serveru je super ali sa mysql-om ocajno radi (PK index kao veliki char ... bacanje resursa) ... ostaje "seljo" metoda, kako je ja zovem, a to je da PK bude ili kompozitni od ID+SERVER_ID (gde je server_id default = 1/2/3/4 zavisno od servera do servera) ili da je ID << 2 a 0 i 1 bit su setovani zavisno od servera ... naravno tu autoinc onda pada u vodu pa mora da se pravi drugaciji nacin popunjavanja id-a ...

nisam ti nesto previse pomogao, tj, ne verujem da sam ti rekao nesto novo ovde ... (osim sto ti u startu spasavam vreme koji bi mozda potrosio na mysql cluster da bi kasno uvideo da ti ne radi posao) ... sve se svodi na prilicno jednostavan setup mysql-a (upalis binlog, upalis log-slave-updates, setujes autoincrementstep i postavis set master i eto - sve radi) .. najkomplikovaniji deo sledi posle toga - a to je da kada odlucis kako ces da radis sa mysqlom (1 ili 2, ja licno smatram da je [1] bolje resenje ali zavisi od mnogo cega, nekad je [2] mnogo bolje) - da smislis kako ce tacno da ti radi failover u slucaju kada crknes 1 ili 2 ili 3 servera odjednom (kapiram da pricamo o 4 mysql noda, dakle ako riknu 4 nema failovera :D ) ... dakle u [1] moras da, ako je rikno master odradis unapredjenje jednog od slave servera u novi master (da prvo odlucis koji u odnosu na to gde se nalaze po pitanju stizanja replikacije - ako si koristio semisync kao sto rekoh onda je bar jedan stigao sve - njega treba da nadjes) i da prebacis tvoj app da sada to bude master a ostali da budu slave (puko prebacivanje cluster ip-a kao sto ide kod apache-a nece bas da odradi posao) ... i onda treba da vidis kako vracas failed node nazad u hpc grupu kada ga "opravis" a da ti to ne zezne nista (na primer prosli vikend smo imali klijenta koji je ostao bez 1 dana podataka zato sto radio "rucno" vracanje masine u hpc grupu i postavio je nju kao mastera te pregazio sve promene koje su se desile od trenutka kada je ta masina ispala iz grupe pa dok je nije vratio ... jeste inzenjer je dobio otkaz zato sto nije citao logove i procedure al ... firma je ostala bez ~20h podataka)

e sad, to je to uopsteno ... mislim da sam dovoljno jasno objasnio "koncept" sa dovoljno detalja da mozes da odlucis kako ces dalje ... za detalje kako to da napravis, tu sam, samo se prvo odluci sta pa kad zapnes, tu smo :D ... ako nesto pak nije jasno iz ove opste price .. reci

sto se tice ove cirkularne replikacije (master-master) .. nije los tekst .. ja vise volim da dajem link na ovaj: http://onlamp.com/pub/a/onlamp...dvanced-mysql-replication.html .. mislim da je bolji, (a i pisao ga je kolega), no prica je ista ..

nekoliko bitnih stavki
- nemoj da koristis mysql binary iz RH-a, njihov binary nije ni za .!., baguje pod velikim opterecenjem (bagovi u libc-u) i generalno je golo .... koristi binary sa dev.mysql.com
- ja licno preferiram RH distro-e za linux (fedora za kod kuce, rhel za servere), i preferiram sve da instaliram iz rpm-ova, ali mysql na RH i dalje stavljam iz tar.gz u /usr/local/mysql .. RPM ovi rade (oni sa dev.mysql.com) ali ja i dalje preferiram /usr/local .. ( ako instaliras rpm-ove sa dev.mysql.com, prvo poskidas sve rh rpm-ovde sa --nodeps --force a onda instaliras one sa dev.mysql.com i sve radi kako treba i sav dependecies ostane ispostovan)
- obavezno koristi 5.5.x i semisync replikaciju


 
Odgovor na temu

cveticmilan
System administrator
Beograd

Član broj: 105312
Poruke: 161
*.nb.rs.

Sajt: www.nb.rs


+8 Profil

icon Re: MySQL - best practice22.02.2011. u 12:36 - pre 160 meseci
hvala na izdasnom odgovoru, moram zaista malo dublje da udjem u problematiku jer i nisam bas vican sql-u.

Ovaj link na onlampu je super i zaista lepo i jednostavno objasnjena problematika ali to kod mene ne radi a to je bas ono sto mi treba.

Uspeo sam da namestim ovaj slucaj [1] sto si mi preporucio i to radi ali bih ja kao sto rekoh lanac master/master.

Jel ima nekih bitnih izmena jer koristim 5.5 a ovo uputstvo je poprilicno staro ?

Da li mozes malo bolje da objasnis

http://prsync.com/oracle/mysql--whats-new-in-replication-102380/

deo = Replication Per Server Filtering

[Ovu poruku je menjao cveticmilan dana 22.02.2011. u 14:08 GMT+1]
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: MySQL - best practice22.02.2011. u 13:02 - pre 160 meseci
nema neke razlike dal je 5.0 ili 5.5 sto se tice cirkulara, na 5.5 mozes dodatno da radis semisync sto nije objasnjeno u tom docu ali ovaj original mora da radi ... kad kazes "meni ovo ne radi" - sta ti ne radi? tj sta znaci "ne radi" ?
- kako ti izgleda jedan a kako drugi my.cnf
- sta ti kaze show slave status na oba servera
- sta ti kaze show master na oba servera


obzirom da kazes da nemas iskustva, ja ti savetujem da prvo neko vreme teras obicnu replikaciju pa tek onda predjes na master/master
 
Odgovor na temu

cveticmilan
System administrator
Beograd

Član broj: 105312
Poruke: 161
*.nb.rs.

Sajt: www.nb.rs


+8 Profil

icon Re: MySQL - best practice22.02.2011. u 14:13 - pre 160 meseci
Imam 4 servera. 1 master i 3 slave

pratio ovo uputsto

http://download.oracle.com/doc...ion-semisync-installation.html

i dakle namestio semisync na master-u i na 3 slave.


sa mastera

Code:
mysql> SHOW MASTER STATUS\G
*************************** 1. row ***************************
            File: mysql-bin.000007
        Position: 107
    Binlog_Do_DB: 
Binlog_Ignore_DB: 
1 row in set (0.00 sec)


sa 3 slave
Code:

mysql> SHOW SLAVE STATUS\G
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 172.16.1.81
                  Master_User: root
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000007
          Read_Master_Log_Pos: 107
               Relay_Log_File: mysqld-relay-bin.000016
                Relay_Log_Pos: 253
        Relay_Master_Log_File: mysql-bin.000007
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB: 
          Replicate_Ignore_DB: 
           Replicate_Do_Table: 
       Replicate_Ignore_Table: 
      Replicate_Wild_Do_Table: 
  Replicate_Wild_Ignore_Table: 
                   Last_Errno: 0
                   Last_Error: 
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 107
              Relay_Log_Space: 556
              Until_Condition: None
               Until_Log_File: 
                Until_Log_Pos: 0
           Master_SSL_Allowed: No
           Master_SSL_CA_File: 
           Master_SSL_CA_Path: 
              Master_SSL_Cert: 
            Master_SSL_Cipher: 
               Master_SSL_Key: 
        Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error: 
               Last_SQL_Errno: 0
               Last_SQL_Error: 
  Replicate_Ignore_Server_Ids: 
             Master_Server_Id: 1298382116
1 row in set (0.00 sec)



my.cnf na masteru

Code:
[mysqld]

datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql

rpl_semi_sync_master_enabled=1
rpl_semi_sync_master_timeout=1000

server-id=1298382116
log-bin=mysql-bin
log-error=mysql-bin.err

# Disabling symbolic-links is recommended to prevent assorted security risks

symbolic-links=0

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid



my.cnf na 3 slave (s tim sto se naravno razlikuje ID servera)

Code:

[mysqld]

datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql

server-id=1298382304
rpl_semi_sync_slave_enabled=1

# Disabling symbolic-links is recommended to prevent assorted security risks

symbolic-links=0

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid



i na kraju sa mastera

mysql> SHOW SLAVE HOSTS;
+------------+------+------+------------+
| Server_id | Host | Port | Master_id |
+------------+------+------+------------+
| 1298382682 | | 3306 | 1298382116 |
| 1298382304 | | 3306 | 1298382116 |
| 1298382510 | | 3306 | 1298382116 |
+------------+------+------+------------+
3 rows in set (0.00 sec)

mysql>

i ovo isto sa master

mysql> SHOW PROCESSLIST \G;
*************************** 1. row ***************************
Id: 2
User: root
Host: CL4.nb.rs:46881
db: NULL
Command: Binlog Dump
Time: 1102
State: Master has sent all binlog to slave; waiting for binlog to be updated
Info: NULL
*************************** 2. row ***************************
Id: 3
User: root
Host: CL3.nb.rs:57139
db: NULL
Command: Binlog Dump
Time: 1102
State: Master has sent all binlog to slave; waiting for binlog to be updated
Info: NULL
*************************** 3. row ***************************
Id: 4
User: root
Host: CL2.nb.rs:35387
db: NULL
Command: Binlog Dump
Time: 1102
State: Master has sent all binlog to slave; waiting for binlog to be updated
Info: NULL
*************************** 4. row ***************************
Id: 8
User: root
Host: 192.168.7.97:44942
db: NULL
Command: Sleep
Time: 1
State:
Info: NULL
*************************** 5. row ***************************
Id: 9
User: root
Host: 192.168.7.97:44943
db: NULL
Command: Sleep
Time: 1
State:
Info: NULL
*************************** 6. row ***************************
Id: 13
User: root
Host: localhost
db: NULL
Command: Query
Time: 0
State: NULL
Info: SHOW PROCESSLIST
6 rows in set (0.00 sec)

ERROR:
No query specified

mysql>



Mislim da je dovoljno da ne lepim vise koda

 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: MySQL - best practice22.02.2011. u 14:40 - pre 160 meseci
master deluje ok.

ako uradis neki insert da li se Position poveca?

slave isto izgleda ok, stigao je tacno gde treba (na poziciju 107 na mysql-bin.000007), radio i IO i SQL thread, nema gresaka

show processlist na masteru pokazuje da imas 3 zakacena slave-a koji su pokupili sve logove

??sta ne radi??

 
Odgovor na temu

cveticmilan
System administrator
Beograd

Član broj: 105312
Poruke: 161
*.nb.rs.

Sajt: www.nb.rs


+8 Profil

icon Re: MySQL - best practice23.02.2011. u 11:31 - pre 160 meseci
Sto se tice gore pometute konfiguracije 1 master 3 slave sa semisynchronous 5.5 i svime sto si mi preporucio radi ko sat i to je jasno.

Ali da budem jasan (izvinjavam se sto nisam do sada),

meni zapravo vodu pije samo maser/master u prstenu jer se ne pise aplikacija od pocetka vec ce biti instalirana JOOMLA. Vi bi trebali bolje da znate od mene kako je ona dizajnirana, koji su tu upiti, secije i sve ostalo sto se tice sql-a.
Nikako mi dakle ne odgovara master/slave (bar ja tako mislim) jer kad padne master meni puca aplikacija tj, joomla jer je njoj receno sa slusa samo na odredjenom mysql-u (npr 172.16.1.81). Sve puca

Ja mislim da je idealno resenje da stavim u svakom nodu tj masteru

#bind-address

tj da mi je reszultat

Citat:
netstat -tap | grep mysql


Code:
tcp        0      0 *:mysql                 *:*   LISTEN     2671/mysqld


(ovo je naravno sve u posebnom vlanu i vswitch na esxi i samo mogu sql-ovi izmedju sebe da pricaju i potpuno su enkapsulirani)

znaci da slusa na sve strane i onda u aplikaciji tj instalaciji joomle-a samo kazem MYsql-a baza ti je na localhost-u.

Pada bilo koji od master-a u ringu, aplikacija nastavlja da radi upise cita itd ....

Bice tu mnogo problema, zar ne? Kako ce znati npr koji korisnik odakle sta da cita, upisuje itd .... (naravno puca sesija) - mada ne bi bilo lose kad bi imao mehanizam i to da drzim zivo :)

Da podsetim, u pozadini tj ispred se vrte 2 httpd-a sa razlicitim adresama (round robin u dns-u) i korisnici ce random pristupati mysql-u tj ako ide na apache 172.16.1.77 onda ide i na taj mysql (master na localhostu) ili na 172.16.1.79 na mysql na localhostu. Ostala dva mastera su fakticki neaktivna i samo se repliciraju dok ne padne neki od httpd-a i onda se se uradi realocate i fence noda (i IP) te druge i oni postaju "aktivni" i sada vidiljivi tom apache i joomla sada gadja njih

Ne znam da li sam jasan. ali laicki receno fresh mysql na sva 4 noda u svakoj milisekundi.
Ne znam, mozda sam i mnogo zapetljao ali mislim da je to jedino i idealno resenje.
Izvinjavam se ostalima ako sam offtopic

P.S.

sve nade polazem u

auto_increment_increment
auto_increment_offset

Trenutno buzim pa pisem kad zapne
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: MySQL - best practice23.02.2011. u 11:55 - pre 160 meseci
za joomla sajt ti je master sa 3 slave-a mnogo bolje resnje nego master master chain.

stavi iza web servera mysql-proxy i upali na proxy-u rw-splitting.lua i vozi misko .. rw-splitting neka ti razbacuje upite tamo vamo i radice super .. ( http://jan.kneschke.de/project...ysql-proxy-more-r-w-splitting/ ), ako neki server "rikne" proxy ce automatski da prestane da ga koristi ...

jedini problem koji treba da resis je sta ako ti rikne master, tu treba da odradis onda failover na neki od slave servera i da restartujes mysql proxy tako da mu kazes ko je novi master




 
Odgovor na temu

[es] :: MySQL :: MySQL - best practice

Strane: 1 2

[ Pregleda: 5982 | Odgovora: 23 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.