Jak zrobić zrzut wielu baz MySQL do osobnych plików

Wykonując kopię bezpieczeństwa serwera MySQL dobrze jest zachować zrzut każdej bazy w osobnym pliku co bardzo przyspiesza jej późniejsze odtworzenie w razie awarii lub pomyłki. Całość nie jest skompilowana i sprowadza się do raczej prostego skryptu w bashu.

Przykładowy skrypt zakłada użycie parametru --defaults-extra-file w którym przechowywane jest hasło do konta mającego stosowne uprawnienia do wykonywania backupów. Jego działanie sprowadza się do pobrania listy baz danych dostępnych na serwerze, a następnie zapisania zawartości każdej z nich do osobnego pliku.

#!/bin/bash
# Zmienne przechowujace sciezke pliku z poswiadczeniami
CREDENTIALS_FILE="/home/radek/mysql_backup_user.credentials"
# Oraz katalogu gdzie beda przechowywane zrzuty baz
LOCALBACKUP="/home/radek/mysql_backup"

# Pobranie listy baz danych; pomijane sa bazy: Database, information_schema oraz performance_schema
DATABASES=`/usr/bin/mysql --defaults-extra-file=$CREDENTIALS_FILE -u backup_user -e "SHOW DATABASES;" | grep -Ev "(Database|information_schema|performance_schema)"`

# Z rzucanie każdej z baz do osobnego pliku
for database in $DATABASES; do
        /usr/bin/mysqldump --defaults-extra-file=$CREDENTIALS_FILE -u backup_user --routines $database > $LOCALBACKUP/$database.sql
done

Jeden komentarz do wpisu “Jak zrobić zrzut wielu baz MySQL do osobnych plików

  1. astrafox / Odpowiedz

    Kolejny bardzo przydatny artykuł z poradami. Dla mnie do codziennych działań w firmie bardzo się wiele z tych rzeczy przydaje ;)

Skomentuj