• mySQL, mariaDB > sauvegarde des bases de données (backup)

      Sauvegarde / backup

      mysqldump -h ma_machine -u moi -p ma_base > sauvegarde.mysql

       

      -h ma_machine : si le serveur mysql n’est pas sur la même machine. (optionnel)

      -u moi : nom du user mysql

      -p : pour demander le mot de passe

      ma_base : le nom de la base à sauvegarder

      Sauvegarder TOUTES les bases

      L’utilisateur root est obligatoire :

       

      mysqldump --all-databases -u root -p > sauvegarde.sql

      Éviter la demande de mot de passe

      mysqldump --all-databases -u root --password=mot_de_passe > sauvegarde.sql

      Formater la sauvegarde avec la date

      mysqldump -uroot -pmonpass ${i} > _`date +"%F"`.sql
      mysqldump --user=xxx --password=xxx $i > _`date +"%F"`.sql

      Chez Free.fr

      wget http://sql.free.fr/backup.php --post-data="login=toto&password=foobar&check=1&all=1" -O $(date +%F).sql.gz

      SCRIPTS

      script 1 - Sauvegarder chaque Base dans son propre fichier

      Dans un fichier sauvegarde_db.sh par exemple :

       

      #!/bin/bash
      mysql_user=root
      mysql_pass=mot_de_passe_root
      
      bases=`mysql -u $mysql_user --password=$mysql_pass -e "show databases;" -B -s 2>/dev/null`
      
      if [ -z "$bases" ];then
         echo "Erreur d'accès ou aucune base"
         exit 1
      fi
      
      echo "Début de la sauvegarde"
      
      for base in $bases ; do
         echo "Sauvegarde de $base..."
         mysqldump -u $mysql_user --password=$mysql_pass "$base" > $base.sql
      done
      
      echo "Sauvegarde terminée"

       

      ./sauvegarde_db.sh

      SCRIPT 2

      #!/bin/bash
      
      qui=""
      mdp=""
      host=""
      nom_db=""
      rep="/chemin/destination"
      date=$(date +"%d-%b-%Y")
      
      umask 177
      
      mysqldump --user=$qui --password=$mdp --host=$host $nom_db > $rep/$nom_db_$date.sql
      
      # efface les fichiers vieux de plus de 30 jours
      find $rep/* -mtime +30 -exec rm {} \;
      
      if [ "${host[$i]}" = "sql.free.fr" ]; then
      {
         wget http://sql.free.fr/backup.php --post-data="login=$qui&password=$mdp&check=1&all=1" -O $(date +%F_%H-%M-%S).sql.gz
      }
      else
      {
         mysqldump -h${serveur_sql[$i]} -u${qui[$i]} -p${mdp[$i]} $j > ${j}_`date +%D | sed 's;/;-;g'`.sql
         # compression en gz
         gzip $rep/$date.sql
         # Compression en tar.bz2
         tar jcf ${j}_`date +%D | sed 's;/;-;g'`.sql.tar.bz2 ${j}_`date +%D | sed 's;/;-;g'`.sql
         rm ./mysql/$date.sql
      }fi

       

       

      PC1 = serveur hébergeant les Bases de données.

      PC2 = serveur sur lequel importer les Base de données.

      Export de la base de données.

      Sur PC1 :

      # mysqldump -u root -p -q --databases DB1 > /chemin/DB1.sql
      # mysqldump -u root -p -q --databases DB2 > /chemin/DB2.sql

      -q Accélérer la création du fichier SQL (Quick Mode)

       

      Envoyer les deux fichiers sur DB2:

      # scp /chemin/DB1.sql root@192.168.1.1:/chemin/DB1.sql
      # scp /chemin/DB2.sql root@192.168.1.1:/chemin/DB2.sql

      Récupération / Restauration

      mysql -u monUser -p maBase < databasename_backup.sql;

      Import de la base de données.

      Avant d’importer les bases et leurs données, créer deux bases ayant le même nom.

      MariaDB > CREATE DATABASE DB1;
      MariaDB > CREATE DATABASE DB2;

       

      Importer les bases de données :

      # mysql -u root -p DB1 < /chemin/DB1.sql
      # mysql -u root -p DB2 < /chemin/DB2.sql

       

      Voili voilou

 

Aucun commentaire

 

Laissez un commentaire