Sauvegarde et restauration des bases de données

De PHPNET - Wiki
Aller à : navigation, rechercher

Sauvegarder automatiquement une base de données

  1. Rendez-vous dans votre espace client . connecter à l'espace client PHPNET,
  2. Sélectionnez votre hébergement dans le menu de gauche ( "Hébergements mutualisés" ou "Serveurs Premium" en fonction de votre offre)
  3. Dans la partie "Vos bases de données Mysql", dans la colonne "Dump" du tableau, choisissez la fréquence de sauvegarde que vous souhaitez effectuer
  4. Validez la mise en place de la sauvegarde avec le bouton "Ok" se trouvant à côté de la liste des fréquences de Dump .

Le DUMP sera déposé dans le dossier /archive, à la racine de votre hébergement, dans un fichier nommé "nom_de_la_base_serveur_date.sql.bz2"


Exemple : Ici, je mets en place une sauvegarde de ma base de données "allinone1" tous les 5 jours :
Tab mutu 2.png

Sauvegarde manuelle

Si vous désirez exporter ou importer une base manuellement (bases de données légères) :

  1. Accédez à la gestion de votre base de données par phpMyAdmin . (Plus d'infos pour Gérer vos bases MySQL/MariaDB)
  2. Cliquez alors sur l'onglet "Exporter" ou "Importer" et sélectionnez le fichier correspondant sur votre ordinateur.

Attention.pngSi vous désirez effectuer une importation ou exportation d'une base de données plutôt lourde, phpMyAdmin fera un timeout (dépassement du temps maximal d'exécution pour un script) vous empêchant de réaliser l'opération.
Le plus simple est alors d'utiliser un script tel que BigDump ou un logiciel tiers tel MySQLFront ou MySQL WorkBench, de vous connecter au serveur et de créer ou restaurer le DUMP ainsi.

VDS et Dédiés (utilisateurs confirmés)

Vous pouvez soit installer des outils tels que phpMyAdmin qui vous permettront à la même manière qu'en mutualisé de gérer vos bases, soit automatiser et/ou faire manuellement des dumps depuis la ligne de commande (pas de problèmes de timeout par exemple).

Il est également possible d'utiliser les outils cités plus haut mais dans ce cas, il ne faut pas oublier d'autoriser les connexions externes à votre utilisateur MySQL (ainsi qu'au serveur MySQL en lui même).


En vous connectant en SSH (ligne de commande) sur la machine, vous pouvez par exemple utiliser mysqlhotcopy (si vous faites un dump de bases sur la machine elle-même, ne fonctionnera pas sur des bases distantes) ou mysqldump (fonctionnera en local ou avec des bases distantes mais sera un peu plus lent que mysqlhotcopy) :

Export de base(s) (dump)

Pour faire un dump avec mysqldump des bases "base1" et "base2" sur localhost (machine locale) :

   mysqldump -hlocalhost -uloginsql -pmotdepassedelabase --databases base1 base2 > /repertoire/mon_dump.sql

(il est également possible de spécifier manuellement le mot de passe en remplaçant "-pmotdepassedelabase" par "-p", il sera alors demandé d'entrer le mot de passe au lancement de la commande)

Restauration de base(s)

Pour restaurer un de ces dumps :

   mysql -u loginsql -p'motdepassedelabase' -h localhost --database nom_de_la_base < /chemin/mon_dump.sql

Copie de bases (avec mysqlhotcopy)

Pour faire une copie des bases avec mysqlhotcopy (nécessite d'avoir un accès aux deux serveurs MySQL et ne fonctionne que pour les bases en ISAM ou en MyISAM, pas pour les bases en InnoDB) :

   mysqlhotcopy base1 /repertoiredesdump/

Cela créera un répertoire /repertoiredesdump/base1 avec une copie des bases originelles qui se trouvent dans /var/lib/mysql/, pour ré-importer cette sauvegarde il faut couper le serveur mysql (/etc/init.d/mysql stop) puis remplacer /var/lib/mysql/base1/ par celui qui est dans /repertoiredesdump/base1 (renommer l'ancien répertoire par sécurité) puis relancer mysql (/etc/init.d/mysql start).


Export/import de base(s) avec compression/décompression à la volée des fichiers

Compresser les fichiers .sql à la volée en gunzip (.gz) pour économiser de la place vous pouvez utiliser au moment du dump :

   mysqldump -hlocalhost -uloginsql -pmotdepassedelabase --databases base1 base2 | gzip > /repertoiredesdump/dump.sql.gz

Et pour ré-importer directement ces dump compressés:

   gunzip < /repertoiredesdump/dump.sql.gz | mysql -uloginsql -pmotdepassedelabase -hlocalhost


Compression/décompression manuelle de fichiers

Pour manuellement compresser un fichier.sql au format gunzip (.gz) (cela crée fichier.sql.gz) :

   gzip lefichier.sql

Pour décompresser un lefichier.sql.gz (retire automatiquement l'extension .gz) :

   gunzip lefichier.sql.gz


La documentation officielle de mysqldump
La documentation officielle de mysqlhotcopy