Un tout petit script qui fait le dump de
toutes les BDs d'un serveur MySQL.
1- vi
/usr/local/bin/MySQLBackup.sh
#! /bin/bash
Date=`date +%F`
Dump="/usr/bin/mysqldump"
BKP_DIR="/var/backups/mysql"
Find="/bin/find"
Rm="/bin/rm"
# Nombre de sauvegardes à garder
NoS=15
for DB in $(echo "show databases"|mysql); do
if [[ "$DB" =~ "Database"|.*"_schema" ]]; then
continue
fi
$Dump --single-transaction --force
--default-character-set=utf8 --add-drop-table --events $DB | gzip
-9 > $BKP_DIR/${DB}_${Date}.gz
# $Dump --single-transaction --force --default-character-set=utf8 --add-drop-table --events $DB | bzip2 > $BKP_DIR/${DB}_${Date}.bz2
done
$Find $BKP_DIR -name "*.gz" -mtime +$NoS -exec $Rm {} ";"
2- Requis
Pour que ce script marche, il faut juste créer /var/backups/mysql/
[root@mysql-server]# mkdir -p /var/backups/mysql
3- Restauration
Pour sauvagerader, on utilise la commande mysqldump, tandis que pour
restaurer, on utilise la commande mysql.
Le principe est simple, il faut recréer la BD, redonner les droits aux usagers qui y avaient droit, puis restaurer.
Première technique :
mysq> create database ladbarestaurer
mysql>
use ladbarestaurer
mysql>
source ladbarestaurer.dump
Sinon :
[root@mysql-server]# mysqladmin
[-u root -p] create ladbarestaurer
[root@mysql-server]#
mysql [-u root -p] ladbarestaurer
< ladbarestaurer.dump
À noter que c'est possible de restaurer une seule table avec la commande :
[root@mysql-server]# mysql -u root -p ladbarestaurer < tablearestaurer.dump
Le fichier tablearestaurer.dump contiendra le dump de la table tablearestaurer.
La commande qui permet de récupérer le dump de tablearestaurer est :
[root@mysql-server]# mysqldump -u root -p ladbarestaurer tablearestaurer > tablearestaurer.dump
Sources :
https://dev.mysql.com/doc/refman/5.7/en/mysqldump.html
https://dev.mysql.com/doc/mysql-backup-excerpt/5.7/en/mysqldump-sql-format.html
L'information, n'est-elle pas précieuse ? Partageons la tous ensemble !
© Juin 2019
Roger YERBANGA
www.yerbynet.com