Moj omiljeni način za backup MySQL-a je da ugasim mysql (mysqladmin -uroot shutdown) bekapujem data dir (rsync) i upalim mysql (mysqld_safe&) ali to nije uvek moguce i ume da potraje. Ako imam dostupan slave server onda to i nije tako problematicno posto slave obicno moze da se zagasi dok traje bekap.
Ono sto je moj kolega Lenz odradio je automatski backup sa minimalnim downtime-om. Doduse, da bi mogli da koristite Lenz-ovu skriptu datadir mora da se nalazi na LVM-u ali …
Da ne duzim, skripta se zove mylvmbackup i moze se naci ovde.
Ono sto skripta radi je ukratko:
- konektuje se na mysql i zalokuje sve tabele, flushne sve keseve,
- napravi LVM snapshot
- odlokuje mysql i pusti ga da normalno radi
- bekapuje datadir sa snapshot-a i po potrebi popravi innodb table space
To je najbrzi nacin za backup MySQL-a