Aller au contenu

Backup automatique de plusieurs DB crées dynamiquement sous MYSQL


Gecko64

Sujets conseillés

Bonjour, voilà en fait je sais comment faire un backup d'une base de donnée sous MySQL.

Je sais aussi scripter pour faire un backup auto de plusieurs DB mais voilà ou se pose mon souci:

Pour expliquer, je vais avoir de manière dynamique une création de bases de données sous MySQL qui m'obligerait de modifier sans cesse mon script de backup a chaque nouvelle DB qui apparait...

Cela sera du au fait que j'ai toujours eu en projet la création de forum publiques genre forumactif...

Donc un forum ouvert = une nouvelle DB qui apparait et donc a chaque fois une ligne de backup a rajouter a mon script...

Ma question est donc de savoir si il existe sous MySQL une commande qui une fois lancée, ferait un backup de TOUTES les DB comprises dans MySQL (commande en root je suppose).

Un ami lui fait un peu a la barbare en copiant le répertoire complet qui contient tous les fichiers de MySQL mais bon, ca n'est pas propre je trouve...

J'ai déjà cherché sur les forums mais je n'ai pas trouvé de réponse a ma question...

Merci

Gecko64

Lien vers le commentaire
Partager sur d’autres sites

Plutôt que de sauver toutes les bases dans un seul fichier, pourquoi ne pas les sauver l'une après l'autre...

Par exemple :

for i in `find /home/mysql -type d | sed 's#/home/mysql/##'`
do
nice -10 /usr/local/mysql/bin/mysqldump -u$USER -p$PASSWORD -e -q -Q --add-drop-table $i | gzip > $LOCALDIR/sql/$i.sql.gz
rsync -alHvzcpog -e 'ssh' $LOCALDIR/sql/$i.sql.gz $NIC_HANDLE:rsync/bases-$current/
done

Dan ;)

PS: vérifie de chemin de mysqldump, et le répertoire dans lequel se trouvent les bases... pour le reste cela fait plusieurs années que cela marche sur une bonne centaine de serveurs :P

Lien vers le commentaire
Partager sur d’autres sites

Ha oui je viens de lire ton script dans les grandes lignes, c'est assez avancé ^^

Je vais faire un tour dans le man de quelques commandes pcq il y a certains paramètres que je ne comprends pas encore ainsi ;)

EDIT: ha ben j'ai compris.

Pas mal la commande sed, je ne la connaissais pas celle la :P

Oui donc je pourrai faire en sorte de passer en paramètre $USER et $PASSWORD a mon script qui seront le login et pass ROOT.

Bien que Debian lui même possède je sais un compte aussi pour lui se connecter a MySQL et y faire des opérations ( /etc/mysql/debian.cnf ).

Peut être moyen aussi d'exploiter ca, enfin je verrai :)

Merci Dan :)

Lien vers le commentaire
Partager sur d’autres sites

Ca c'est une question que je me suis toujours posée de savoir si il y a une modification dans la DB, si ca ne risquait pas de corrompre le fichier de backup qui serait en cours de réalisation.

A mon avis ils doivent surement bosser sur un cache pendant que les données sont copiées du disque dur vers le backup? :unsure:

Lien vers le commentaire
Partager sur d’autres sites

for i in `find /var/lib/mysql/ -type d | sed 's#/var/lib/mysql/##'`
do
nice -10 /usr/local/mysql/bin/mysqldump -u$USER -p$PASSWORD -e -q -Q --add-drop-table $i | gzip > $LOCALDIR/sql/$i.sql.gz
rsync -alHvzcpog -e 'ssh' $LOCALDIR/sql/$i.sql.gz $NIC_HANDLE:rsync/bases-$current/
done

Il y avait un petit souci de / a la première ligne :)

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...