«

»

mar 20

Sauvegarder ses bases Mysql sous linux

Voici une petite amélioration qui fonctionnera avec mysqldump afin de sauvegarder toutes vos bases dans des fichiers indépendants.

Ce script perl vous permet de sauvegarder chaque base de votre serveur mysql dans un fichier indépendant ce qui facilite grandement la restauration d’une seule base.

#! /usr/bin/perl -w

use strict;
use DBI;

my @EXCLUDE = ("snort" , "syslog");
my $PATH = "/data/backup";
my $HOST = "localhost";
my $USER = "backup";
my $PASSWD = "xxxx";

my $REQUEST;
my ($DB) = DBI->connect("dbi:mysql:host=$HOST",$USER,$PASSWD) or die "MYSQL -> $DBI::errstr";
$REQUEST = $DB->prepare("SHOW DATABASES;");
$REQUEST->execute;
while (my $hash_ref=$REQUEST->fetchrow_hashref())
{
    my @tmp = grep (/$hash_ref->{"Database"}/,@EXCLUDE);
    if ( $#tmp)
	{
	    my ($FILENAME)="$PATH/DUMP_" . $hash_ref->{"Database"}.".sql";
	    print "Backup " . $hash_ref->{"Database"} . " to $FILENAME\n";
	    `export LD_LIBRARY_PATH=;/usr/bin/mysqldump -u $USER -p$PASSWD -C -F -B $hash_ref->{"Database"} > $FILENAME`;
	}
	else
	{

	    print "Excluding " . $hash_ref->{"Database"} . "\n";
	}
}
$REQUEST->finish;
$DB->disconnect;

Pour utiliser ce script, un utilisateur (ici backup) doit avoir les droits suivants sur votre serveur mysql:

SELECT, RELOAD, SHOW DATABASES, CREATE TEMPORARY TABLES, LOCK TABLES

Vous devez aussi disposer des modules MySQL

Lien Permanent pour cet article : http://www.equinoxefr.org/post/2007/03/20/sauvegarder-ses-bases-mysql-sous-linux/

Laisser un commentaire

Votre adresse ne sera pas publiée.


*

Vous pouvez utiliser les balises HTML suivantes : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">