Daily MySQL backup, windows batch file

Automatické denní zálohy mysql databáze na windows. Jak to řešit? Nejvhodnější je dávkový soubor bat spouštěný plánovačem v určitý čas. Najdete zde skript, který umí denní, týdenní a měsíční zálohy mysql, vše zazipované, včetně vlastního instalačního rozhraní! Pouze jedinný bat soubor!


Zdrojový kód ke stažení backup_mysql_v1.zip, backup_mysql20090725.zip

Zálohovat MySQL databázi na vývojovém počítači není od věci. Určitě by to mělo patřit mezi BEST PRACTICES programátora. Obvykle asi nebudete mít na vývojovém počítači hodnotná data v mysql, ale i ztráta datové struktury může být problém!

Dlouho jsem hledal vhodný skript, který by splňoval všechny mé požadavky. Na linux najdete spousty kvalitních skriptů, ale na windows je to horší.

Existují řešení postavené na php, např. phpMyBackupPro, jejich nevýhodou je, že rekonstrukci databáze provádí v php kódu. Lepí výsledný backup soubor jako skládačku.

Tvrdím, že jediná správná cesta je přes mysqldump. V tomhle věřím jedině nástroji dodávaném společně s mysql distribucí, ten myslí i na zpětnou kompatibilitu jednotlivých verzí mysql.

Další možností je spouštět mysqldump z php a předávat mu parametry podle nastavení uživatele, což nutně znamená pracovat s příkazem exec a to může být opět problematické.

Nakonec jsem si musel slepit několik takových skriptů do jednoho. Stačí mu nastavit přístupové údaje do databáze, cestu k souboru mysqldump, cestu k archivátoru gzip a cestu kam bude ukládat denní, týdenní a měsíční zálohy.

V průběhu testování budou určitě vznikat nové a nové verze. Pokud máte někdo podobný problém a bude se Vám líbit tohle řešení, tak najdete v příkladech ke stažení vždy aktuální verzi.

komentáře

RSS Komentáře k článku RSS Komentáře   Add to Google
03.11.2009 00:33 | Anonym (godder) | syncplicity

Je to mozna trochu od veci, ale nekomu se to muze hodit. Zalohu resim trebas pres primo zalohu souboru, ktere si dela samo MySQL. Konkretne pouzivam toto oline uloziste http://www.syncplicity.com/. Podobne lze vyuzit Dropbox a dalsi alternativy..

03.11.2009 22:06 | Administrátor | Re: syncplicity

obávám se, že tento způsob funguje jen v případě myisam, horší už to bude u tabulek typu innodb

Jméno
Název
Text
Lze používat Texy! syntax. Příklad syntaxe: "text odkazu":odkaz, **tučně**, *kurzíva*, `code`. PHP kód uzavírejte do <?php ... ?> a JavaScript do <script> ... </script>