:.     Home     .:.     Cours     .:.     Faits divers     .:.     Blagues     .:.     Liens     .:.     Perso     .:

 

Petit script de backup de BD

 


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