Bonjour,
J'aimerai mettre en place une solution de sauvegarde j'hésite entre Amanda ou Bacula. Mon utilisation sera essentiellement la sauvegarde d'une base MySQL sur disque.
Que me conseillez-vous ? Merci pour votre aide.
Pourquoi pas un script de sauvegarde en bash dans la cron et une rotation classique ?
Parce que Amanda/Bacula c'est un peu l'artillerie lourde pour un "simple" mysql dump. Le gros avantage de Bacula est pour moi dans sa finesse de backup au niveau fichier et sa capacité de récupération de fichiers ou de dossier à une date donnée. Chose impossible sur un dump sql de part sa nature même (tout est dans le fichier)
Donc peut etre que ce n'est pas la bonne solution, mais je peux aussi me tromper sur la nature et l'interprétation de ton problème.
Bien à toi.
2010/11/16 Issa Moussa issa.moussa@voltalis.com
Bonjour,
J'aimerai mettre en place une solution de sauvegarde j'hésite entre Amanda ou Bacula. Mon utilisation sera essentiellement la sauvegarde d'une base MySQL sur disque.
Que me conseillez-vous ? Merci pour votre aide. -- Cordialement. _______________________________________________ Liste de diffusion du FRsAG http://www.frsag.org/
Bonjour,
Le 16/11/2010 15:54, Issa Moussa a écrit :
J'aimerai mettre en place une solution de sauvegarde j'hésite entre Amanda ou Bacula. Mon utilisation sera essentiellement la sauvegarde d'une base MySQL sur disque.
Backuppc http://backuppc.sourceforge.net/ Avec une pre-command qui lance un mysqldump.
Bonjour,
cron + mysqldump ?
Ca me parait le plus simple, après à moins que tu aies d'autres besoins spécifiques en dehors de la sauvegarde de MySQL je vois pas raisons de sortir un seul sous de ta poche :)
Cordialement, Pierre
Le 16/11/2010 15:54, Issa Moussa a écrit :
Bonjour,
J'aimerai mettre en place une solution de sauvegarde j'hésite entre Amanda ou Bacula. Mon utilisation sera essentiellement la sauvegarde d'une base MySQL sur disque.
Que me conseillez-vous ? Merci pour votre aide.
grillé en puissance ;) mais les grands esprits de rencontrent !
2010/11/16 Pierre Gaxatte pierre.gaxatte@gmail.com
Bonjour,
cron + mysqldump ?
Ca me parait le plus simple, après à moins que tu aies d'autres besoins spécifiques en dehors de la sauvegarde de MySQL je vois pas raisons de sortir un seul sous de ta poche :)
Cordialement, Pierre
Le 16/11/2010 15:54, Issa Moussa a écrit :
Bonjour,
J'aimerai mettre en place une solution de sauvegarde j'hésite entre Amanda ou Bacula. Mon utilisation sera essentiellement la sauvegarde d'une base MySQL sur disque.
Que me conseillez-vous ? Merci pour votre aide.
Liste de diffusion du FRsAG http://www.frsag.org/
Bonjour,
Tu m'as devancé sur ce point. Penses aussi à la simplicité de restauration en cas de crash. Pour ma part, j'ai utilisé backuppc et j'en ai été très satisfait; mais cela concernait différentes type de services à sauvegarder (mysql,logs,comptes utilisateur ...)
Cordialement,
Le 16 novembre 2010 16:18, Pierre Gaxatte pierre.gaxatte@gmail.com a écrit :
Bonjour,
cron + mysqldump ?
Ca me parait le plus simple, après à moins que tu aies d'autres besoins spécifiques en dehors de la sauvegarde de MySQL je vois pas raisons de sortir un seul sous de ta poche :)
Cordialement, Pierre
Le 16/11/2010 15:54, Issa Moussa a écrit :
Bonjour,
J'aimerai mettre en place une solution de sauvegarde j'hésite entre Amanda ou Bacula. Mon utilisation sera essentiellement la sauvegarde d'une base MySQL sur disque.
Que me conseillez-vous ? Merci pour votre aide.
Liste de diffusion du FRsAG http://www.frsag.org/
Bonjour,
On trouve même des perfectionnistes qui gardent les différents révisions de leur base : http://www.viget.com/extend/backup-your-database-in-git/
S'il n'y a pas trop de différentiel, c'est un bon moyen d'économiser du disque plutôt que d'avoir un dump sql complet par jour.
J'ajouterai un petit 'git gc' dans le cron.
M
Bonjour, cron + mysqldump ? Ca me parait le plus simple, après à moins que tu aies d'autres besoins spécifiques en dehors de la sauvegarde de MySQL je vois pas raisons de sortir un seul sous de ta poche :)
Le 16/11/2010 16:18, Pierre Gaxatte a écrit :
Bonjour,
cron + mysqldump ?
Bonsoir,
J'ai fait ça : #!/bin/sh DOSSIER_TEMPORAIRE_LOCAL=/xxx/xxx/xxx SERVEUR_DEST=xxxxxx DOSSIER_DEST=/xxxx/xxx/xxx UTILISATEUR_DISTANT=xxxxx MOT_DE_PASSE_SQL=xxxxx UTILISATEUR_SQL=admin PREFIX=serveur-xxxx-
for i in $( echo "show databases;" | mysql -uadmin -p$MOT_DE_PASSE_SQL | grep -v "Database" ); do mysqldump $i -u $UTILISATEUR_SQL --password=$MOT_DE_PASSE_SQL > $DOSSIER_TEMPORAIRE_LOCAL/$i.sql gzip $DOSSIER_TEMPORAIRE_LOCAL/$i.sql
# penser avant au certificat SSH et au ~/.ssh/authorized_keys kivabien ! scp $DOSSIER_TEMPORAIRE_LOCAL/$i.sql.gz $UTILISATEUR_DISTANT@$SERVEUR_DEST:$DOSSIER_DEST/$PREFIX$i.sql.gz rm $DOSSIER_TEMPORAIRE_LOCAL/$i.sql.gz done
# restauration avec la commande : # gunzip fichier_sauvegarde.sql.gz # mysql -u root -p NomDeLaBase < fichier_sauvegarde.sql #eof()
et un simple crontab kivabien aussi... :) C'est basique et sûrement améliorable (garder un historique par exemple), mais ça fonctionne et ça répond à mes besoins.
My 2 cents... ^^
Merci pour vos réponses. La base que je veux sauvegarder est très grosse plus 300G donc un mysqldump prends bcp de temps. Actuellement je backup avec lvm snapshot + rsync. Je voulais faire du point in time recovery et d'après ce que j'ai lu Amanda permet de le faire pour MySQL. Et je me disais aussi qu'un outil tel Amanda ou Bacula pourrait permettre de faire un backup plus propre et sûr.
On 16/11/2010 16:49, Laurent Druffin wrote:
Le 16/11/2010 16:18, Pierre Gaxatte a écrit :
Bonjour,
cron + mysqldump ?
Bonsoir,
J'ai fait ça : #!/bin/sh DOSSIER_TEMPORAIRE_LOCAL=/xxx/xxx/xxx SERVEUR_DEST=xxxxxx DOSSIER_DEST=/xxxx/xxx/xxx UTILISATEUR_DISTANT=xxxxx MOT_DE_PASSE_SQL=xxxxx UTILISATEUR_SQL=admin PREFIX=serveur-xxxx-
for i in $( echo "show databases;" | mysql -uadmin -p$MOT_DE_PASSE_SQL | grep -v "Database" ); do mysqldump $i -u $UTILISATEUR_SQL --password=$MOT_DE_PASSE_SQL > $DOSSIER_TEMPORAIRE_LOCAL/$i.sql gzip $DOSSIER_TEMPORAIRE_LOCAL/$i.sql
# penser avant au certificat SSH et au ~/.ssh/authorized_keys kivabien ! scp $DOSSIER_TEMPORAIRE_LOCAL/$i.sql.gz $UTILISATEUR_DISTANT@$SERVEUR_DEST:$DOSSIER_DEST/$PREFIX$i.sql.gz rm $DOSSIER_TEMPORAIRE_LOCAL/$i.sql.gz done
# restauration avec la commande : # gunzip fichier_sauvegarde.sql.gz # mysql -u root -p NomDeLaBase < fichier_sauvegarde.sql #eof()
et un simple crontab kivabien aussi... :) C'est basique et sûrement améliorable (garder un historique par exemple), mais ça fonctionne et ça répond à mes besoins.
My 2 cents... ^^ _______________________________________________ Liste de diffusion du FRsAG http://www.frsag.org/
Bonjour,
Sur une grosse DB, il mieux vaut le faire sur un replica afin que les I/O disque et réseau n'impactent pas la disponibilité du service MySQL (voire un replica complètement _dédié_ aux sauvegardes).
Pour ma part, je sauvegarde un serveur MySQL qui occupe environ 120Go sur disque. Pour ce faire : snapshot LVM + Bacula + un script qui se charge de coordonner le tout (création du LVM avant la sauvegarde, suppression du LVM après). Ca prend 2:50 avec la compression côté client (80% de taux de compression). Il s'agit d'un replica quasiment dédié aux sauvegardes.
Le 16 novembre 2010 17:12, Issa Moussa issa.moussa@voltalis.com a écrit :
Merci pour vos réponses. La base que je veux sauvegarder est très grosse plus 300G donc un mysqldump prends bcp de temps. Actuellement je backup avec lvm snapshot + rsync. Je voulais faire du point in time recovery et d'après ce que j'ai lu Amanda permet de le faire pour MySQL. Et je me disais aussi qu'un outil tel Amanda ou Bacula pourrait permettre de faire un backup plus propre et sûr.
On 16/11/2010 16:49, Laurent Druffin wrote:
Le 16/11/2010 16:18, Pierre Gaxatte a écrit :
Bonjour,
cron + mysqldump ?
Bonsoir,
J'ai fait ça : #!/bin/sh DOSSIER_TEMPORAIRE_LOCAL=/xxx/xxx/xxx SERVEUR_DEST=xxxxxx DOSSIER_DEST=/xxxx/xxx/xxx UTILISATEUR_DISTANT=xxxxx MOT_DE_PASSE_SQL=xxxxx UTILISATEUR_SQL=admin PREFIX=serveur-xxxx-
for i in $( echo "show databases;" | mysql -uadmin -p$MOT_DE_PASSE_SQL | grep -v "Database" ); do mysqldump $i -u $UTILISATEUR_SQL --password=$MOT_DE_PASSE_SQL > $DOSSIER_TEMPORAIRE_LOCAL/$i.sql gzip $DOSSIER_TEMPORAIRE_LOCAL/$i.sql
# penser avant au certificat SSH et au ~/.ssh/authorized_keys kivabien ! scp $DOSSIER_TEMPORAIRE_LOCAL/$i.sql.gz $UTILISATEUR_DISTANT@$SERVEUR_DEST:$DOSSIER_DEST/$PREFIX$i.sql.gz rm $DOSSIER_TEMPORAIRE_LOCAL/$i.sql.gz done
# restauration avec la commande : # gunzip fichier_sauvegarde.sql.gz # mysql -u root -p NomDeLaBase < fichier_sauvegarde.sql #eof()
et un simple crontab kivabien aussi... :) C'est basique et sûrement améliorable (garder un historique par exemple), mais ça fonctionne et ça répond à mes besoins.
My 2 cents... ^^ _______________________________________________ Liste de diffusion du FRsAG http://www.frsag.org/
-- Cordialement.
Liste de diffusion du FRsAG http://www.frsag.org/
Bonjour,
Merci, je pense que je vais choisir cette solution. Merci à tous pour votre aide.
On 19/11/2010 17:14, Baptiste Malguy wrote:
Bonjour,
Sur une grosse DB, il mieux vaut le faire sur un replica afin que les I/O disque et réseau n'impactent pas la disponibilité du service MySQL (voire un replica complètement _dédié_ aux sauvegardes).
Pour ma part, je sauvegarde un serveur MySQL qui occupe environ 120Go sur disque. Pour ce faire : snapshot LVM + Bacula + un script qui se charge de coordonner le tout (création du LVM avant la sauvegarde, suppression du LVM après). Ca prend 2:50 avec la compression côté client (80% de taux de compression). Il s'agit d'un replica quasiment dédié aux sauvegardes.
Le 16 novembre 2010 17:12, Issa Moussa issa.moussa@voltalis.com a écrit :
Merci pour vos réponses. La base que je veux sauvegarder est très grosse plus 300G donc un mysqldump prends bcp de temps. Actuellement je backup avec lvm snapshot + rsync. Je voulais faire du point in time recovery et d'après ce que j'ai lu Amanda permet de le faire pour MySQL. Et je me disais aussi qu'un outil tel Amanda ou Bacula pourrait permettre de faire un backup plus propre et sûr.
On 16/11/2010 16:49, Laurent Druffin wrote:
Le 16/11/2010 16:18, Pierre Gaxatte a écrit :
Bonjour,
cron + mysqldump ?
Bonsoir,
J'ai fait ça : #!/bin/sh DOSSIER_TEMPORAIRE_LOCAL=/xxx/xxx/xxx SERVEUR_DEST=xxxxxx DOSSIER_DEST=/xxxx/xxx/xxx UTILISATEUR_DISTANT=xxxxx MOT_DE_PASSE_SQL=xxxxx UTILISATEUR_SQL=admin PREFIX=serveur-xxxx-
for i in $( echo "show databases;" | mysql -uadmin -p$MOT_DE_PASSE_SQL | grep -v "Database" ); do mysqldump $i -u $UTILISATEUR_SQL --password=$MOT_DE_PASSE_SQL > $DOSSIER_TEMPORAIRE_LOCAL/$i.sql gzip $DOSSIER_TEMPORAIRE_LOCAL/$i.sql
# penser avant au certificat SSH et au ~/.ssh/authorized_keys kivabien ! scp $DOSSIER_TEMPORAIRE_LOCAL/$i.sql.gz $UTILISATEUR_DISTANT@$SERVEUR_DEST:$DOSSIER_DEST/$PREFIX$i.sql.gz rm $DOSSIER_TEMPORAIRE_LOCAL/$i.sql.gz done
# restauration avec la commande : # gunzip fichier_sauvegarde.sql.gz # mysql -u root -p NomDeLaBase < fichier_sauvegarde.sql #eof()
et un simple crontab kivabien aussi... :) C'est basique et sûrement améliorable (garder un historique par exemple), mais ça fonctionne et ça répond à mes besoins.
My 2 cents... ^^ _______________________________________________ Liste de diffusion du FRsAG http://www.frsag.org/
-- Cordialement.
Liste de diffusion du FRsAG http://www.frsag.org/
Liste de diffusion du FRsAG http://www.frsag.org/
Bonsoir,
petite optimisation rapide de ta boucle for, gain de temps et d'espace disque :
for i in $( echo "show databases;" | mysql -uadmin -p$MOT_DE_PASSE_SQL | grep -v "Database" ); do mysqldump $i -u $UTILISATEUR_SQL --password=$MOT_DE_PASSE_SQL | gzip | ssh $UTILISATEUR_DISTANT@$SERVEUR_DEST "cat >$DOSSIER_DEST/$PREFIX$i.sql.gz" done
Et une autre optimisation pour backupper en // (à tester j'ai écris comme ça) :
NB_CORES=$( grep processor /proc/cpuinfo | wc -l ) for db in $( mysql -uadmin -p$MOT_DE_PASSE_SQL -e "show databases" ); do mysql -ABN -uadmin -p$MOT_DE_PASSE_SQL -e "SELECT TABLE_NAME FROM TABLES WHERE TABLE_SCHEMA='$db'" information_schema | xargs -n1 -P$NB_CORES -I{} sh -c "mysqldump -uadmin -p$MOT_DE_PASSE_SQL $db {} | gzip | ssh $UTILISATEUR_DISTANT@$SERVEUR_DEST 'cat
$DOSSIER_DEST/$PREFIX$i.sql.gz'"
done
Le 16/11/2010 16:49, Laurent Druffin a écrit :
#!/bin/sh DOSSIER_TEMPORAIRE_LOCAL=/xxx/xxx/xxx SERVEUR_DEST=xxxxxx DOSSIER_DEST=/xxxx/xxx/xxx UTILISATEUR_DISTANT=xxxxx MOT_DE_PASSE_SQL=xxxxx UTILISATEUR_SQL=admin PREFIX=serveur-xxxx-
for i in $( echo "show databases;" | mysql -uadmin -p$MOT_DE_PASSE_SQL | grep -v "Database" ); do mysqldump $i -u $UTILISATEUR_SQL --password=$MOT_DE_PASSE_SQL > $DOSSIER_TEMPORAIRE_LOCAL/$i.sql gzip $DOSSIER_TEMPORAIRE_LOCAL/$i.sql
# penser avant au certificat SSH et au ~/.ssh/authorized_keys kivabien ! scp $DOSSIER_TEMPORAIRE_LOCAL/$i.sql.gz $UTILISATEUR_DISTANT@$SERVEUR_DEST:$DOSSIER_DEST/$PREFIX$i.sql.gz rm $DOSSIER_TEMPORAIRE_LOCAL/$i.sql.gz done
# restauration avec la commande : # gunzip fichier_sauvegarde.sql.gz # mysql -u root -p NomDeLaBase < fichier_sauvegarde.sql #eof()
et un simple crontab kivabien aussi... :) C'est basique et sûrement améliorable (garder un historique par exemple), mais ça fonctionne et ça répond à mes besoins.
My 2 cents... ^^ _______________________________________________ Liste de diffusion du FRsAG http://www.frsag.org/
Remarque, la petite optimisation pour backup en parallèle peut aussi se faire directement avec GNU Parallel http://www.gnu.org/software/parallel/ même principe que xargs
2010/11/16 Greg greg-frsag@duchatelet.net:
Bonsoir,
petite optimisation rapide de ta boucle for, gain de temps et d'espace disque :
for i in $( echo "show databases;" | mysql -uadmin -p$MOT_DE_PASSE_SQL | grep -v "Database" ); do mysqldump $i -u $UTILISATEUR_SQL --password=$MOT_DE_PASSE_SQL | gzip | ssh $UTILISATEUR_DISTANT@$SERVEUR_DEST "cat >$DOSSIER_DEST/$PREFIX$i.sql.gz" done
Et une autre optimisation pour backupper en // (à tester j'ai écris comme ça) :
NB_CORES=$( grep processor /proc/cpuinfo | wc -l ) for db in $( mysql -uadmin -p$MOT_DE_PASSE_SQL -e "show databases" ); do mysql -ABN -uadmin -p$MOT_DE_PASSE_SQL -e "SELECT TABLE_NAME FROM TABLES WHERE TABLE_SCHEMA='$db'" information_schema | xargs -n1 -P$NB_CORES -I{} sh -c "mysqldump -uadmin -p$MOT_DE_PASSE_SQL $db {} | gzip | ssh $UTILISATEUR_DISTANT@$SERVEUR_DEST 'cat >$DOSSIER_DEST/$PREFIX$i.sql.gz'" done
Le 16/11/2010 16:49, Laurent Druffin a écrit :
#!/bin/sh DOSSIER_TEMPORAIRE_LOCAL=/xxx/xxx/xxx SERVEUR_DEST=xxxxxx DOSSIER_DEST=/xxxx/xxx/xxx UTILISATEUR_DISTANT=xxxxx MOT_DE_PASSE_SQL=xxxxx UTILISATEUR_SQL=admin PREFIX=serveur-xxxx-
for i in $( echo "show databases;" | mysql -uadmin -p$MOT_DE_PASSE_SQL | grep -v "Database" ); do mysqldump $i -u $UTILISATEUR_SQL --password=$MOT_DE_PASSE_SQL > $DOSSIER_TEMPORAIRE_LOCAL/$i.sql gzip $DOSSIER_TEMPORAIRE_LOCAL/$i.sql
# penser avant au certificat SSH et au ~/.ssh/authorized_keys kivabien ! scp $DOSSIER_TEMPORAIRE_LOCAL/$i.sql.gz $UTILISATEUR_DISTANT@$SERVEUR_DEST:$DOSSIER_DEST/$PREFIX$i.sql.gz rm $DOSSIER_TEMPORAIRE_LOCAL/$i.sql.gz done
# restauration avec la commande : # gunzip fichier_sauvegarde.sql.gz # mysql -u root -p NomDeLaBase < fichier_sauvegarde.sql #eof()
et un simple crontab kivabien aussi... :) C'est basique et sûrement améliorable (garder un historique par exemple), mais ça fonctionne et ça répond à mes besoins.
My 2 cents... ^^ _______________________________________________ Liste de diffusion du FRsAG http://www.frsag.org/
-- Greg
Liste de diffusion du FRsAG http://www.frsag.org/
Perso j'utilise backuppc (comme déjà dis sur la liste d'ailleurs). Pour ce qui est des opérations un peu spéciales, j'ai remplacé sur certaines machines le binaire rsync par un script sh, qui fait appel quand il faut au vrai binaire rsync. Ca permet justement de lancer des pré ou post commandes. Hope this help :)
2010/11/16 Greg greg-frsag@duchatelet.net
Bonsoir,
petite optimisation rapide de ta boucle for, gain de temps et d'espace disque :
for i in $( echo "show databases;" | mysql -uadmin -p$MOT_DE_PASSE_SQL | grep -v "Database" ); do mysqldump $i -u $UTILISATEUR_SQL --password=$MOT_DE_PASSE_SQL | gzip | ssh $UTILISATEUR_DISTANT@$SERVEUR_DEST "cat >$DOSSIER_DEST/$PREFIX$i.sql.gz" done
Et une autre optimisation pour backupper en // (à tester j'ai écris comme ça) :
NB_CORES=$( grep processor /proc/cpuinfo | wc -l ) for db in $( mysql -uadmin -p$MOT_DE_PASSE_SQL -e "show databases" ); do mysql -ABN -uadmin -p$MOT_DE_PASSE_SQL -e "SELECT TABLE_NAME FROM TABLES WHERE TABLE_SCHEMA='$db'" information_schema | xargs -n1 -P$NB_CORES -I{} sh -c "mysqldump -uadmin -p$MOT_DE_PASSE_SQL $db {} | gzip | ssh $UTILISATEUR_DISTANT@$SERVEUR_DEST 'cat >$DOSSIER_DEST/$PREFIX$i.sql.gz'" done
Le 16/11/2010 16:49, Laurent Druffin a écrit :
#!/bin/sh
DOSSIER_TEMPORAIRE_LOCAL=/xxx/xxx/xxx SERVEUR_DEST=xxxxxx DOSSIER_DEST=/xxxx/xxx/xxx UTILISATEUR_DISTANT=xxxxx MOT_DE_PASSE_SQL=xxxxx UTILISATEUR_SQL=admin PREFIX=serveur-xxxx-
for i in $( echo "show databases;" | mysql -uadmin -p$MOT_DE_PASSE_SQL | grep -v "Database" ); do mysqldump $i -u $UTILISATEUR_SQL --password=$MOT_DE_PASSE_SQL > $DOSSIER_TEMPORAIRE_LOCAL/$i.sql gzip $DOSSIER_TEMPORAIRE_LOCAL/$i.sql
# penser avant au certificat SSH et au ~/.ssh/authorized_keys kivabien ! scp $DOSSIER_TEMPORAIRE_LOCAL/$i.sql.gz $UTILISATEUR_DISTANT@ $SERVEUR_DEST:$DOSSIER_DEST/$PREFIX$i.sql.gz rm $DOSSIER_TEMPORAIRE_LOCAL/$i.sql.gz done
# restauration avec la commande : # gunzip fichier_sauvegarde.sql.gz # mysql -u root -p NomDeLaBase < fichier_sauvegarde.sql #eof()
et un simple crontab kivabien aussi... :) C'est basique et sûrement améliorable (garder un historique par exemple), mais ça fonctionne et ça répond à mes besoins.
My 2 cents... ^^ _______________________________________________ Liste de diffusion du FRsAG http://www.frsag.org/
-- Greg
Liste de diffusion du FRsAG http://www.frsag.org/
Bonsoir
Pour ma part je dirais Bacula couplé à un esclave Mysql.
Km
Bonjour,
Je n'ai vu personne citer dirvish http://www.dirvish.org/ Proche de backuppc il a l'avantage d'avoir une arborescence en tout point identique à celle de la machine sauvegardée. La possibilité d'exécuter des pré-commandes, etc...
À plus,
Marc.
Le mardi 16 novembre 2010 à 17:21 +0100, Philippe a écrit :
Perso j'utilise backuppc (comme déjà dis sur la liste d'ailleurs).
Pour ce qui est des opérations un peu spéciales, j'ai remplacé sur certaines machines le binaire rsync par un script sh, qui fait appel quand il faut au vrai binaire rsync. Ca permet justement de lancer des pré ou post commandes. Hope this help :)
2010/11/16 Greg greg-frsag@duchatelet.net
Bonsoir, petite optimisation rapide de ta boucle for, gain de temps et d'espace disque : for i in $( echo "show databases;" | mysql -uadmin -p $MOT_DE_PASSE_SQL | grep -v "Database" ); do mysqldump $i -u $UTILISATEUR_SQL --password=$MOT_DE_PASSE_SQL | gzip | ssh $UTILISATEUR_DISTANT@$SERVEUR_DEST "cat >$DOSSIER_DEST/$PREFIX$i.sql.gz" done Et une autre optimisation pour backupper en // (à tester j'ai écris comme ça) : NB_CORES=$( grep processor /proc/cpuinfo | wc -l ) for db in $( mysql -uadmin -p$MOT_DE_PASSE_SQL -e "show databases" ); do mysql -ABN -uadmin -p$MOT_DE_PASSE_SQL -e "SELECT TABLE_NAME FROM TABLES WHERE TABLE_SCHEMA='$db'" information_schema | xargs -n1 -P$NB_CORES -I{} sh -c "mysqldump -uadmin -p $MOT_DE_PASSE_SQL $db {} | gzip | ssh $UTILISATEUR_DISTANT@ $SERVEUR_DEST 'cat >$DOSSIER_DEST/$PREFIX$i.sql.gz'" done Le 16/11/2010 16:49, Laurent Druffin a écrit : #!/bin/sh DOSSIER_TEMPORAIRE_LOCAL=/xxx/xxx/xxx SERVEUR_DEST=xxxxxx DOSSIER_DEST=/xxxx/xxx/xxx UTILISATEUR_DISTANT=xxxxx MOT_DE_PASSE_SQL=xxxxx UTILISATEUR_SQL=admin PREFIX=serveur-xxxx- for i in $( echo "show databases;" | mysql -uadmin -p $MOT_DE_PASSE_SQL | grep -v "Database" ); do mysqldump $i -u $UTILISATEUR_SQL --password= $MOT_DE_PASSE_SQL > $DOSSIER_TEMPORAIRE_LOCAL/$i.sql gzip $DOSSIER_TEMPORAIRE_LOCAL/$i.sql # penser avant au certificat SSH et au ~/.ssh/authorized_keys kivabien ! scp $DOSSIER_TEMPORAIRE_LOCAL/$i.sql.gz $UTILISATEUR_DISTANT@$SERVEUR_DEST: $DOSSIER_DEST/$PREFIX$i.sql.gz rm $DOSSIER_TEMPORAIRE_LOCAL/$i.sql.gz done # restauration avec la commande : # gunzip fichier_sauvegarde.sql.gz # mysql -u root -p NomDeLaBase < fichier_sauvegarde.sql #eof() et un simple crontab kivabien aussi... :) C'est basique et sûrement améliorable (garder un historique par exemple), mais ça fonctionne et ça répond à mes besoins. My 2 cents... ^^ _______________________________________________ Liste de diffusion du FRsAG http://www.frsag.org/ -- Greg _______________________________________________ Liste de diffusion du FRsAG http://www.frsag.org/
Liste de diffusion du FRsAG http://www.frsag.org/
Hug,
On 16 Nov 2010, at 17:15 , Greg wrote:
petite optimisation rapide de ta boucle for, gain de temps et d'espace disque :
for i in $( echo "show databases;" | mysql -uadmin -p$MOT_DE_PASSE_SQL | grep -v "Database" ); do mysqldump $i -u $UTILISATEUR_SQL --password=$MOT_DE_PASSE_SQL | gzip | ssh $UTILISATEUR_DISTANT@$SERVEUR_DEST "cat >$DOSSIER_DEST/$PREFIX$i.sql.gz" done
Pour faire un backup a chaud d'une base utilisant innodb, il faut utiliser le --single-transaction. Ca fait un flush de toutes les tables puis lance le dump dans une transaction. Cette option, plus le --master-data, et vous avez un dump cohérent avec les informations du slave pour reprendre le binlog au bon endroit au cas où (si le dump est fait sur le master).
Generalement pour mes dumps j'utilise donc: mysqldump -qCe --single-transaction --master-data=1 -uroot -pxxx --databases x y z
Avec MyISAM c'est un peu plus chiant...
jym
Pour faire un backup a chaud d'une base utilisant innodb, il faut utiliser le --single-transaction. Ca fait un flush de toutes les tables puis lance le dump dans une transaction. Cette option, plus le --master-data, et vous avez un dump cohérent avec les informations du slave pour reprendre le binlog au bon endroit au cas où (si le dump est fait sur le master).
Generalement pour mes dumps j'utilise donc: mysqldump -qCe --single-transaction --master-data=1 -uroot -pxxx --databases x y z
Avec MyISAM c'est un peu plus chiant...
Ou utiliser les merveilleux outils perconna, xtradbbackup et innobackupex. Parce que ta solution elle lock la base, et ce n'est pas toujours possible.
-- Raphael Mazelier
On 19 Nov 2010, at 15:23 , Raphael Mazelier wrote:
Ou utiliser les merveilleux outils perconna, xtradbbackup et innobackupex. Parce que ta solution elle lock la base, et ce n'est pas toujours possible.
non, elle ne lock rien justement.
man page:
This option issues a BEGIN SQL statement before dumping data from the server. It is useful only with transactional tables such as InnoDB and BDB, because then it dumps the consistent state of the database at the time when BEGIN was issued without blocking any applications.
When using this option, you should keep in mind that only InnoDB tables are dumped in a consistent state. For example, any MyISAM or MEMORY tables dumped while using this option may still change state.
The --single-transaction option and the --lock-tables option are mutually exclusive, because LOCK TABLES causes any pending transactions to be committed implicitly.
Ou alors tu parles des alter/drop/truncate ?
jym
On 16/11/2010 15:54, Issa Moussa wrote:
Bonjour,
J'aimerai mettre en place une solution de sauvegarde j'hésite entre Amanda ou Bacula. Mon utilisation sera essentiellement la sauvegarde d'une base MySQL sur disque.
Que me conseillez-vous ?
Bonjour,
Pour du mysql, un outil de backup standard ne suffira pas, sauf si tu coupes mysql avant ton backup (ou si tu aimes les frissons à la restoration). A chaud, il te faudra mysql{dump,hotcopy}, ou des snapshots LVM, ou [insérer votre méthode favorite ici].
Après pour le filesystem et pour backuper sur disque, j'aime bien bontmia backup. Simple, efficace, basé sur rsync+ssh.
J'ai un petit wrapper perl sous la main pour paralléliser et configurer plusieurs backups sous bontmia au passage si ça tente quelqu'un.
M
Le 16/11/2010 16:18, Michel Blanc a écrit :
Bonjour,
Pour du mysql, un outil de backup standard ne suffira pas, sauf si tu coupes mysql avant ton backup (ou si tu aimes les frissons à la restoration). A chaud, il te faudra mysql{dump,hotcopy}, ou des snapshots LVM, ou [insérer votre méthode favorite ici].
Perso, j'ai déjà testé, avec Yosemite Backup (de Barracuda Networks, le logiciel fait juste une copie des fichiers, il arrête rien) et aucun soucis ! En sauvegardant tout le /var/mysql à chaud et en le restaurant à froid, j'avais pas eu de problèmes.
Avec PostgreSQL oui, j'avais TOUT cassé, mais avec MySQL, ça allait. J'ai p'tet eu du bol :)
Après pour le filesystem et pour backuper sur disque, j'aime bien bontmia backup. Simple, efficace, basé sur rsync+ssh.
J'ai un petit wrapper perl sous la main pour paralléliser et configurer plusieurs backups sous bontmia au passage si ça tente quelqu'un.
M
Bonjour,
Pour MySQL j'aime bien automysqlbackup, ça s'occupe de cron+dump chaque table avec rotation jour/semaine/mois site http://sourceforge.net/projects/automysqlbackup/ et package debian squeeze/sid disponible
Pour le reste j'aime bien rsnapshot, qui utilise de manière efficace les hardlinks pour la rotation jour/semaine/mois. Mais ça passe mal à l'échelle, alors dans certains cas je préfère un simple BackupPC comme cela a déjà été évoqué.
Bon courage, Cordialement, -- StalkR
2010/11/16 Issa Moussa issa.moussa@voltalis.com:
Bonjour,
J'aimerai mettre en place une solution de sauvegarde j'hésite entre Amanda ou Bacula. Mon utilisation sera essentiellement la sauvegarde d'une base MySQL sur disque.
Que me conseillez-vous ? Merci pour votre aide. -- Cordialement. _______________________________________________ Liste de diffusion du FRsAG http://www.frsag.org/
Le 16/11/2010 16:26, StalkR a écrit :
Bonjour,
Pour MySQL j'aime bien automysqlbackup, ça s'occupe de cron+dump chaque table avec rotation jour/semaine/mois site http://sourceforge.net/projects/automysqlbackup/ et package debian squeeze/sid disponible
On peut aussi utiliser mk-parallel-dump http://www.maatkit.org/doc/mk-parallel-dump.html pour backupper plus vite, et surtout restaurer plus vite en utilisant tous les cores du serveurs.
Je résume "ma" solution : - un master + un slave qui ne sert que pour les backup - backuppc avec une pre-command $Conf{DumpPreUserCmd} = "..." - mk-parallel-dump avec l'option --stop-slave pour avoir des données intègre et de quoi refaire un slave rapidement
et pour la restauration, une pre-command aussi : $Conf{RestorePreUserCmd} qui fait un appel à mk-parallel-restore
D'après mes tests, on double la vitesse de restauration sur un serveur 4 coeurs en RAID10.
hello,
Si on a un second serveur en passif qui attends bien au chaud pourquoi ne pas directement pousser les backup et faire la rotation dessus ? Comme ca on supprime l'étape "upload" et on gagne du temps ?
(perso je fais comme ca quand la question est en droit de se poser chez mes clients)
a+
2010/11/16 Greg greg-frsag@duchatelet.net
Le 16/11/2010 16:26, StalkR a écrit :
Bonjour,
Pour MySQL j'aime bien automysqlbackup, ça s'occupe de cron+dump chaque table avec rotation jour/semaine/mois site http://sourceforge.net/projects/automysqlbackup/ et package debian squeeze/sid disponible
On peut aussi utiliser mk-parallel-dump http://www.maatkit.org/doc/mk-parallel-dump.html pour backupper plus vite, et surtout restaurer plus vite en utilisant tous les cores du serveurs.
Je résume "ma" solution :
- un master + un slave qui ne sert que pour les backup
- backuppc avec une pre-command
$Conf{DumpPreUserCmd} = "..."
- mk-parallel-dump avec l'option --stop-slave pour avoir des données
intègre et de quoi refaire un slave rapidement
et pour la restauration, une pre-command aussi : $Conf{RestorePreUserCmd} qui fait un appel à mk-parallel-restore
D'après mes tests, on double la vitesse de restauration sur un serveur 4 coeurs en RAID10.
-- Greg
Liste de diffusion du FRsAG http://www.frsag.org/
Bonjour à tous,
Vous avez aussi "backup manager". Simple, efficace et développé par un Français. http://www.backup-manager.org/
Guillaume Digicube sas
Le mardi 16 novembre 2010 à 15:54 +0100, Issa Moussa a écrit :
Bonjour,
J'aimerai mettre en place une solution de sauvegarde j'hésite entre Amanda ou Bacula. Mon utilisation sera essentiellement la sauvegarde d'une base MySQL sur disque.
Que me conseillez-vous ? Merci pour votre aide.
Le Tue, 16 Nov 2010 15:54:30 +0100, Issa Moussa issa.moussa@voltalis.com a écrit :
Bonjour,
Bonjour,
Moi aussi je fais simple un mysqldump et Backuppc
Cordialement,
+Eric.
J'aimerai mettre en place une solution de sauvegarde j'hésite entre Amanda ou Bacula. Mon utilisation sera essentiellement la sauvegarde d'une base MySQL sur disque.
Que me conseillez-vous ? Merci pour votre aide.
Le Tue, Nov 16, 2010 at 03:54:30PM +0100, Issa Moussa [issa.moussa@voltalis.com] a écrit:
Bonjour,
J'aimerai mettre en place une solution de sauvegarde j'hésite entre Amanda ou Bacula.
Quitte à être le seul à vraiment répondre à la question : Bacula
Mon utilisation sera essentiellement la sauvegarde d'une base MySQL sur disque.
Que me conseillez-vous ?
Par rapport à ce que tu veux faire (sauvegarder ta base Mysql sur disque, donc), backup-mamager déjà cité conviendrait sans doute bien mieux.