Kako napraviti MySQL backup?
Odgovor na pitanje iz naslova je teoretski jednostavno. Ono sto nije jednostavno, to je odabir metoda za MySQL backup. A zasto? Zato sto od nekoliko ponudjenih metoda ni jedno nije idealno. S obzirom na dugu istoriju MySQL servera koji postoji na trzistu skoro nekoliko decenija zapanjujuce je saznanje da jos uvijek ne postoji kvalitetno i sveobuhvatno rjesenje za backup. Sam proizvodjac MySQL-a nudi nekoliko metoda:
- mysqldump
- mysqlhotcopy
- binarni logovi
Medjutim ovo su sve utility programi koji dolaze zajedno sa bazom prilikom instalacije i koji su relativno jednostavni i ne dovoljni za iole ozbiljniji sistem backupa.
Istini za volju postoji Amanda software koji pokusava da pokrije ovaj nedostatak na trzistu ali ne bas uvjerljivo, prvenstveno zbog nedostatka kvalitetne dokumentacije i odredjenih nefleksibilnosti koje bacaju u sjenku postojanje samog software-a. Tim prije sto u stvari predstavlja samo sistematizaciju rada mysqldump-a i mysqlhotcopy-a i ne donosi nikakve novine u sam princip backupa. Tako da je jednostavnije napraviti sopstvenu shell skriptu koja ce da obavi posao backupa nego se zamajavati sa slozenim postupkom instalacije Amande. Osim toga ni sam software ne odaje sigurnost kakvu bi jedan software ove namjene morao imati.
Postoji i metod mirroringa MySQL servera medjutim to podrazumjeva dupliranje servera sto nije bas najisplativije rjesenje. Jedino u slucaju da i onako imate potrebu za kasterizacijom zbog rasporedjivanja opterecenja.
Vratimo se na opise metoda i utility programa koje smo gore nabrojali.
Mysqldump predstavlja najsigurnije rjesenje, medjutim backup file koji proizvede cesto zna biti i nekoliko puta veci od same baze. Ipak ako vam je sigurnost i integritet backupa najbitniji koristicete mysqldump. Dodatna mana mu je i sporost izvrsavanja te opterecenje radnog servera prilikom dump-a.
Mysqlhotcopy je takodje nesrecno rjesenje jer osim sto je ograniceno samo na MyISAM storage engine takodje ne pruza mogucnost inkrementalnog backupa. Takodje baze bekapovane ovim metodom u nekim slucajevima nece funkcionisati. Prednost je relativno brzo obavljanje procesa backupa i nesto manja velicina bekap fajla. Velicina backupa je ista koliko zauzima i sam raw data MySQL baze.
Binarni logovi su interesantni jer prvi put uvode pojam inkrementalnog backup-a. Binarni logovi, ukoliko su ukljuceni, sadrze SQL upite ali samo one koji uticu na promjenu vrijednosti u bazi. Medjutim logovi mogu biti poprilicno neoptimizovani jer nekada jedna vrijednost moze da bude izmjenjena 100 puta pa cemo tako imati 100 upita od kojih nam je u sustini bitan samo zadnji. Nedostaci su jos i usporenje rada MySQL servera od 1% te nemogucnost odvajanja binarnih logova prema bazi za koju se vrsi logovanje.
Na zalost pitanje backup-a MySQL servera nije jednostavno i zahtjeva testiranje gore pomenutih metodologija i odlucivanje preko kolicini procesnih i memorijskih resursa kojim raspolazete. Nekada se cak mogu i mjesati razlicite metode kako bi se doslo do sto kvalitetnijeg rjesenja ali na kraju ostaje gorak ukus nepotpunosti MySQL servera i to na pitanju koje se svakako ne smije potcjeniti a to je pitanje backup-a.

Komentari (Bez komentara)