Sauvegarde simple de base de données Mysql

Il nécessite le script contenant les « fonctions maisons« .

ATTENTION 1 : si votre base n’est pas en utf-8 (voir Database Character Set and Collation), il est peut-être utile de spécifier le jeu de caractère à utiliser, avec –default-character-set=charset.

ATTENTION 2 : ne pas utiliser ce script sur des bases volumineuses car l’accès en écriture sur chaque table est bloqué pendant le dump de celle-ci. De plus si les bases sont modifiées très fréquemment, la cohérence des données n’est pas forcément respectée. Pour une utilisation en environnement de production, s’orienter plutôt vers Zmanda Recovery Manager, ou utiliser les snapshot LVM.

#!/bin/bash
# backup des BD mysql, une par fichier .sql
# Copyright (C) 2006 Luc Santeramo (luc.santeramo at yahoo dot com)
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
# Chemin vers les executables de MySQL
MYSQLBINPATH="/usr/bin"
# Repertoire de sauvegarde
BACKUPPATH="/var/backup/mysql"
# destinataire du message d'erreur
ERRDEST="sysadmin@localhost"
# fichier de fonction
COMMON_FUNCTIONS="/root/scripts/common_functions"
#####
source $COMMON_FUNCTIONS
# recuperation de la liste des BD mysql
DB_LIST="`mysql -B -N -e "show databases;"`"
# sauvegarde des BD, une par fichier
for db in $DB_LIST
do
$MYSQLBINPATH/mysqldump $db > $BACKUPPATH/$db.sql
error_check $0 $? $LINENO "$*" "$ERRDEST"
chmod 640 $BACKUPPATH/$db.sql
error_check $0 $? $LINENO "$*" "$ERRDEST"
done

Une alternative très intéressante à ce script pourrait-être automysqlbackup, mais il souffre des mêmes maux.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *