MySQL je jedna z nejpopulárnějších open-source databází. Pokud ji používáte na své VPS, mohlo by se vám hodit mít zálohu databáze pro případ, že se něco rozbije. Zálohování se dá provádět mnoha způsoby, podíváme se však alespoň na ten nejzákladnější – pomocí příkazu mysqldump. Pokud se chcete zálohování dat z MySQL věnovat více, doporučujeme podívat se na Xtrabackup.

Pro potřeby návodu budeme předpokládat, že máte pro aktuálního uživatele (nemusí se jednat o uživatele root) rozchozené připojování disku a nastavené přihlašování klíčem. Dále budete potřebovat uživatele v MySQL, který má právo číst všechna data.

Nyní si napíšeme jednoduchý zálohovací skript:

#!/bin/sh
BACKUPUSER="user"
MYSQLUSER="backup"
MYSQLPASS="ahoj"

die() {
   echo "$1"
   exit 1
}

mkdir -p /tmp/zaloha
sshfs $BACKUSER@bn1.virt.io: /tmp/zaloha || die "Pripojeni disku selhalo"
mkdir -p /tmp/zaloha/mysql || die "Nepodarilo se vytvorit adresar"
mysqldump -u "$MYSQLUSER" --password="$MYSQLPASS" --all-databases \
  > /tmp/zaloha/mysql/`date +%Y%m%d-%H%M`.sql || die "Zalohovani selhalo"
fusermount -uz /tmp/zaloha

Ten uložíme například do adresáře /home/user/bin/mysql_backup a upravíme patřičné proměnné. Místo user patří login vašeho zálohovacího účtu, jak je v administračním rozhraní. Zbylé dvě proměnné obsahují login (backup) a heslo (ahoj – doporučujeme používat silnější) MySQL uživatele, který má právo všechny databáze. Chcete-li zálohování upravit, aby zálohovalo jen některé databáze, nebo si chcete pohrát s jiným nastavením, doporučujeme manuálovou stránku od mysqldump (man mysqldump) a upravit skript podle svých představ.

Dále je potřeba skriptu nastavit správná práva například pomocí

chmod 0700 /home/user/bin/mysql_backup

Nastavit automatické spouštění lze pomocí příkazu

crontab -e

Následně je třeba správně poeditovat tabulku. Záznam zálohující každý den v 1:15 v noci bude vypadat následovně:

15 1 * * *  /home/user/bin/mysql_backup

Pro podrobnější možnosti nastavení času doporučujeme manuálovou stránku od crontab (man 5 crontab).

Varování

Zde uvedený postup jen jen jednoduchý návod jak se zálohováním začít. Vůbec neřeší promazávání záloh a spoléhá tak, že si uživatel zajistí dostatek místa na disku a bude zálohy promazávat manuálně.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>