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

Backup baze i pucanje konekcije

[es] :: MySQL :: Backup baze i pucanje konekcije

[ Pregleda: 1970 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

dusty
Predrag Glumac
Zemun, Srbija

Član broj: 15383
Poruke: 549
*.kwcp.net.

Sajt: www.mika.rs


+6 Profil

icon Backup baze i pucanje konekcije01.03.2010. u 21:01 - pre 171 meseci
Pozdrav svima.

Imam problem sa backup-om baze. Naime, Windows servis koji sam napravio sve vreme upisuje podatke u jednu bazu. Pored njega ima jos jedan servis koji periodicno upisuje i cita u drugu bazu na istom MySQL serveru, ali oba servisa drze stalno otvorene konekcije ka svojm bazama.

Backup obe baze radim sa mysqldump-om preko batch skripte i scheduled task-a svako jutro u 4 sata. Tokom backup-a servisi ne prestaju sa radom. Ranije se to nije desavalo, ali od kako je jedna baza narasla na preko 1GB (i backup zna da potraje po nekoliko minuta) primetio sam da konekcije pucaju. Dobijam poruke sa greskom "Fatal error encountered during command execution", a nakon toga svaki pokusaj rekonektovanja javlja gresku "server not available" iako je backup zavrsio. To tako potraje par sati, ali se na kraju servisi uspeju povezati na MySQL. Inace, koristim MySQL Connector/Net 6.1.2.

Da li neko zna u cemu moze biti problem? Da li postoji neki drugi, efikasniji nacin za backup? Da li smeta sto tokom backup-a jedan od servisa upisuje podatke?

Hvala na bilo kakvoj pomoci, smernici ....
America national sport is called baseballs. It very similar to our sport, shurik, where we take dogs, shoot them in a field and then have a party.
 
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: Backup baze i pucanje konekcije01.03.2010. u 22:00 - pre 171 meseci
1. budi uvek u toku sa konektorom ... relativno cesto izlaze nove verzije tog .net konektora tako da se trudi da uvek imas "najnoviji"
2. mysqldump LOKUJE SVE TABELE tako da dok ti radi mysqldump - moz pevas borbene, nema upisivanja u tabele ... e sad, zavisno od toga da li radis sa --single-transaction zalokuje tabele jednu po jednu ili sve odjednom .. kako taj bekap traje, ako ti je timeout kratak oni koji cekaju da insertuju podatke budu otkaceni na timeout / ili se otkace sami a onda celu pricu dodatno %$@#&%#$&% windoze posto je debil koji je projektovao nacin na koji windoze radi sa konekcijama tu ima neki kvazi pool gde se ubijene konekcije ne otpustaju i ne dozvoljavaju nove neko vreme ... posto sada ni mysql developeri nisu sveznajuci te posto nemaju pojma za sve windozove limite tu se sada konektor zadangira i ti imas taj problem sa konekcijama (trebalo bi da na primer posle tog bekapa, iako aplikacija ne moze da se rekonektuje ti mozes da startujes drugu aplikaciju koja ce se bez problema okaciti).... dakle tu je kombinacija windozove debilnosti i toga da unix programer pravi .net konektor pa to nije bas kompatibilno samo sa sobom :( ... (ovo ce se najzad promeniti posto nam je big O obecao da cemo dobiti najzad par developera koji znaju windoze, posto trenutno kada ima neki windoze problem jurimo sales i komercijalu da nam "nesto probaju" posto windoze imamo samo na build platformi i to je to ... nijedan developer / consultant nema windoze instalirane - i to nije pozitivno)

e sad .. pitas da li ima bolji nacin za bekap podataka ... za windoze nisam 100% siguran tako da je moguce da nijedan od ovih nacina nije moguc .. ali ovako
1. ako su to myisam tabele trebalo bi da postoji i za windoze mysqlhotcopy http://dev.mysql.com/doc/refman/5.1/en/mysqlhotcopy.html ... nisam siguran, proveri u bin da li imas neki .bat ili .pl ili .exe slicnog imena to je perls skript al ne znam dal postoji za windoze
2. ako su to innodb tabele, imas innodb hot backup, http://www.innodb.com/products/hot-backup/order/ (nije dzaba !!)
3. ovo sigurno ne radi na windozi: http://www.lenzg.net/mylvmbackup/ ali mozda moze da se napravi slicna stvar ... windoze imaju sigurno neki pandam lvm-u uz pomoc kog bi mogao da napravis nesto ovako (cilj je da se napravi snapshot pa se snapshot bekapuje)

ono sto je u svakom slucaju najjednostvnije je
1. ugasis mysql servis (shutdown)
2. iskopiras direktorijum sa datom
3. startas mysql servis

ovo - ma koliko glupo zvucalo - vrlo cesce traje mnoooooooooogo krace nego mysqldump, a kako ti mysqldump svejedno prekida upis posto lokuje tabele onda ti se ovo mozda vise isplati ... razmisli ...

dalje .. ono sto je "pravo" resenje je replikacija ... napravis jos jedan mysql server, setujes ga kao slave, kada hoces da napravis bekap, odradis bekap na slave masini - kako god oces i koliko god sporo hoces i kad zavrsis pustis slave da pokupi zaostale podatke sa mastera ... na ovaj nacin nemas nikakav downtime + imas spreman mysql server nedaj boze ako taj glavni pojede neki virus koji mozes za 2min da promovises u novi master i nastavis sa radom dok ne reinstaliras onaj virozom pojeden server :D



nadam se da ti ovo iole pomaze .. ja licno mislim da ni mysqlhotcopy ni innodbhotbackup ne rade na windozi ali nisam siguran, moraces da proveris ..
 
Odgovor na temu

dusty
Predrag Glumac
Zemun, Srbija

Član broj: 15383
Poruke: 549
*.kwcp.net.

Sajt: www.mika.rs


+6 Profil

icon Re: Backup baze i pucanje konekcije03.03.2010. u 13:36 - pre 171 meseci
Hvala ti puno na ovako opsirnom odgovoru!

Nisam znao da mysqldump uradi lock nad celom tabelom, tako da nisam ni pretpostavljao da je nesto problem u tom pravcu

Pokusao sam sa najsvezijim konektorom za .Net, u konkecionom stringu sam naveo da se ne koristi pooling, ali isti rezultat. Posto ne moze da bude downtime servera, a stipse se nisu htele otvoriti za drugi server pa da se radi replikacija (cak ni UPS nece da uzmu, a pricaju kako je nedopustivo sto "moji" servisi nemaju redundantnost kada mreza padne) odlucio sam da napravim kvazi-replikaciju - da napravim identicnu bazu na istom serveru sa koje ce da se uzima backup. Mislim da je to najbolje resenje za problem "ti bi da se j.... a da ti ne udje".

Jos jednom veliko hvala, imas pivo
America national sport is called baseballs. It very similar to our sport, shurik, where we take dogs, shoot them in a field and then have a party.
 
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: Backup baze i pucanje konekcije03.03.2010. u 15:57 - pre 171 meseci
Citat:
dusty
Nisam znao da mysqldump uradi lock nad celom tabelom, tako da nisam ni pretpostavljao da je nesto problem u tom pravcu :(


za myisam ni ne moze drugacije .. (myisam podrzava samo table lock) dok za innodb koji podrzava row locking svejedno uzima "celu tabelu" pa je onda celu i zalokuje.
ako uradis --single-transaction onda zalokuje ceo server (doduse onda dobijes konzistentan bekap)

Citat:

Pokusao sam sa najsvezijim konektorom za .Net, u konkecionom stringu sam naveo da se ne koristi pooling, ali isti rezultat. Posto ne moze da bude downtime servera, a stipse se nisu htele otvoriti za drugi server pa da se radi replikacija (cak ni UPS nece da uzmu, a pricaju kako je nedopustivo sto "moji" servisi nemaju redundantnost kada mreza padne) odlucio sam da napravim kvazi-replikaciju - da napravim identicnu bazu na istom serveru sa koje ce da se uzima backup. Mislim da je to najbolje resenje za problem "ti bi da se j.... a da ti ne udje".


za .net .. nisu mi ni brat hrvat ni brat ukrainac u blizini .. brat hrvat je kod cika zube (on je majstor za odbc i konektore) a brat ukrainac je u australiji pa je na spavanju (on je majstor za .nemoj i konektore) tako da mi od tima za konektore niko nije blizu da proverim koje je potencijalno resenje .. al rekao sam ti sta da proveris, dakle ako tada kada se ti konektori zadangiraju ti mozes da se okacis sa neke druge aplikacije na mysql - onda moras da promenis nacin na koji hendlujes konekciju te da kada ti rikne konekcija kompletno reinicijalizujes istu (obrises objekat, kreiras novi)... druga stvar koju mozes da uradis je da setujes veeeeeeeeeeeeliki timeout .. vidi koliko ti se dugo izvrsava taj dump i onda povecaj timeout-e ( pogledaj sve parametre koji imaju timeout na http://dev.mysql.com/doc/refma...n/server-system-variables.html )

sto se tice backup resenja ... sta da ti kazem .. nek ti je sa srecom .. mnogo bi ti bilo brze da preinstaliras to na linux stavis na lvm i poteras mylvmbackup i bas te briga .. al .. elem .. trbace ti ovo:
http://dev.mysql.com/doc/refman/5.1/en/multiple-servers.html


 
Odgovor na temu

[es] :: MySQL :: Backup baze i pucanje konekcije

[ Pregleda: 1970 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

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