{"id":56,"date":"2008-08-26T09:21:08","date_gmt":"2008-08-26T07:21:08","guid":{"rendered":"http:\/\/wp1.fredptitgars.net\/index.php\/2008\/08\/26\/sauvegarde-et-restaure-de-base-mysql\/"},"modified":"2008-08-26T09:21:08","modified_gmt":"2008-08-26T07:21:08","slug":"sauvegarde-et-restaure-de-base-mysql","status":"publish","type":"post","link":"https:\/\/fredptitgars.ovh\/?p=56","title":{"rendered":"sauvegarde et restaure de base mysql"},"content":{"rendered":"<p>il est assez utiles de sauvegarder les bases de donn\u00e9es, en cas de crach de la base, o\u00f9 il faudrait tout r\u00e9installer, ou lors de mauvaises manipulations.<\/p>\n<h2>Sauvegarde<\/h2>\n<p>Pour faire une sauvegarde hors ligne, voici une m\u00e9thode simple et rapide:<\/p>\n<p>1) On arr\u00eate la base:<br \/>\n<code><br \/>\n\/etc.init.d.mysqld stop<br \/>\n<\/code><\/p>\n<p>2) copie des fichiers de donn\u00e9es et des r\u00e9pertoires de MYSQL:<br \/>\n<code><br \/>\ncp -r \/var\/lib\/mysql \/tmp\/mysql-backup<br \/>\n<\/code><\/p>\n<p>3) on red\u00e9marre le serveur<br \/>\n<code><br \/>\n\/etc\/init.d\/mysqld start<br \/>\n<\/code><\/p>\n<p>L&rsquo;autre m\u00e9thode pour sauvegarder en automatique, est de faire un dump: <em>mysqldump<\/em>. voici un exemple:<br \/>\n<code><br \/>\n$ mysqldump -u root -p secret stocksdb > stocksdb.sql<br \/>\n<\/code><br \/>\n<br \/>Il est n\u00e9cessaire de re-diriger la sortie vers un fichier, sinon le r\u00e9sultat s&rsquo;affiche dans le terminal, pas tr\u00e8s utile!!<\/p>\n<p>Nous allons cr\u00e9er un script qui sauvegarde l&rsquo;ensemble des tables et qui les compresse:<br \/>\n<br \/><em>backup_bdd.sh<\/em><br \/>\n<code><br \/>\n#!\/bin\/bash<br \/>\n#<br \/>\n## on se place dans le r\u00e9pertoire o\u00f9 l'on veut sauvegarder les bases<br \/>\n#<br \/>\ncd \/home\/mysql_backup<br \/>\n# on sauvegarde les base de egroupware,jcb et spip<br \/>\nfor i in egroupware jcb proftpd spip; do<\/p>\n<p>## Sauvegarde des bases de donn\u00e9es en fichiers .sql<br \/>\nmysqldump -uroot -pMotdePass $i > $<em>i<\/em>_`date +%D | sed 's;\/;-;g'`.sql<\/p>\n<p>## Compression des exports en tar.bz2 (le meilleur taux de compression)<br \/>\ntar jcf $<em>i<\/em>_`date +%D | sed 's;\/;-;g'`.sql.tar.bz2 $<em>i<\/em>_`date +%D | sed 's;\/;-;g'`.sql<\/p>\n<p>## Suppression des exports non compress\u00e9s<br \/>\nrm $<em>i<\/em>_`date +%D | sed 's;\/;-;g'`.sql<\/p>\n<p>done<br \/>\n<\/code><br \/>\nCe script nous cr\u00e9e des fichiers horodat\u00e9, on met en place un autre script de purge:<br \/>\n<br \/><em>clean_backups.sh<\/em><br \/>\n<code><br \/>\n#!\/bin\/bash<br \/>\n#<br \/>\n## Supprime les sauvegardes vieilles de plus de 5 jours<br \/>\n#<br \/>\nfind \/home\/mysql_backup\/ -type f -mtime +4 | xargs -r rm<br \/>\n<\/code><\/p>\n<p>Pour automatis\u00e9 tout cela, il suffit de cr\u00e9er des liens dans le r\u00e9pertoire <em>\/etc\/cron.daily<\/em>. Dans l&rsquo;exemple les scripts se trouvent dans <em>\/root\/scripts<\/em>, pour la cr\u00e9ation de lien cela nous donne:<br \/>\n<code><br \/>\n$ cd \/etc\/cron.daily<br \/>\n$ ln -s \/root\/scripts\/backup_bdd.sh backup_bdd.sh<br \/>\n$ ln -s \/root\/scripts\/clean_backups.sh clean_backups.sh<br \/>\n<\/code><br \/>\n<br \/>Il faut \u00eatre root pour faire tout cela.<\/p>\n<h2>Restauration<\/h2>\n<p>La commande utilis\u00e9 est:<br \/>\n<code><br \/>\nmysql -u root -p MotDePass < backup.sql\n<\/code><\/p>\n<p>Nos fichiers sont compress\u00e9, il est n\u00e9cessaire de les d\u00e9compress\u00e9 avant:<br \/>\n<code><br \/>\ntar -xjf egroupware_04-19-08.sql.tar.bz2<br \/>\n<\/code><br \/>\n<br \/>Cela nous cr\u00e9e le fichier <em>egroupware_04-19-08.sql<\/em> exploitable par mysql.<br \/>\n<br \/>Ensuite il suffit de l'ins\u00e9rer dans mysql:<\/p>\n<p><code><br \/>\nmysql -u root -p MotDePass < egroupware_04-19-08.sql\n<\/code><\/p>\n","protected":false},"excerpt":{"rendered":"<p>il est assez utiles de sauvegarder les bases de donn\u00e9es, en cas de crach de la base, o\u00f9 il faudrait tout r\u00e9installer, ou lors de mauvaises manipulations. Sauvegarde Pour faire une sauvegarde hors ligne, voici une m\u00e9thode simple et rapide: 1) On arr\u00eate la base: \/etc.init.d.mysqld stop 2) copie des fichiers de donn\u00e9es et des [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11],"tags":[],"class_list":["post-56","post","type-post","status-publish","format-standard","hentry","category-poweredge-t105"],"blocksy_meta":[],"_links":{"self":[{"href":"https:\/\/fredptitgars.ovh\/index.php?rest_route=\/wp\/v2\/posts\/56","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fredptitgars.ovh\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fredptitgars.ovh\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fredptitgars.ovh\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/fredptitgars.ovh\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=56"}],"version-history":[{"count":0,"href":"https:\/\/fredptitgars.ovh\/index.php?rest_route=\/wp\/v2\/posts\/56\/revisions"}],"wp:attachment":[{"href":"https:\/\/fredptitgars.ovh\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=56"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fredptitgars.ovh\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=56"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fredptitgars.ovh\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=56"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}