Aller au contenu

Sauvegardes base de données

Ordonnancer les sauvegardes pour MySQL, MariaDB, Percona, PostgreSQL et MongoDB sur Stack Harbor PaaS — script de sauvegarde par défaut, cron, rétention et restauration.

Chaque conteneur de base de données certifié sur Stack Harbor PaaS livre un script de sauvegarde par défaut et une configuration cron. Cette page couvre comment ordonnancer les sauvegardes, où elles sont écrites, comment les sortir du conteneur, et comment restaurer.

L’exemple utilise MySQL — la procédure est la même pour MariaDB, Percona, PostgreSQL et MongoDB, aux identifiants spécifiques au moteur près.

Le conteneur Redis fait exception : Redis est un cache clé-valeur et ne livre pas le script de sauvegarde standard.

Ordonnancer une sauvegarde

Le script par défaut est /var/lib/jelastic/bin/backup_script.sh et la config cron est dans /var/spool/cron/{moteur} (p. ex. /var/spool/cron/mysql).

1. Ouvrir le fichier cron

Ouvrir le gestionnaire de fichiers de configuration du nœud base de données depuis le tableau de bord — cliquer Config à côté du nœud, puis naviguer vers /var/spool/cron/mysql. Le fichier livre une ligne cron d’exemple, commentée.

2. Fournir une expression cron

Le format est :

{frequency} {path-to-script} {script-parameters}
  • {frequency} — expression cron standard. */10 * * * * toutes les 10 minutes ; 0 2 * * * à 02:00 quotidiennement.
  • {path-to-script} — /var/lib/jelastic/bin/backup_script.sh pour le script par défaut.
  • {script-parameters} — passés au script. Voir ci-dessous.

3. Paramètres du script

Le script de sauvegarde par défaut accepte :

  • -m {mode} — dumpall pour une sauvegarde complète, dump pour une partielle.
  • -c {count} — nombre de vieilles sauvegardes à conserver en plus de la plus récente. -c 3 garde 3 plus la dernière.
  • -u {user} et -p {password} — identifiants base de données (depuis le courriel envoyé à la création).
  • -d {databases} — optionnel. -d db1[,db2,db3] pour ne sauvegarder que ces bases.
  • -t {tables} — optionnel. -d db -t table1[,table2] pour ne sauvegarder que ces tables dans db.

Note sur les mots de passe : si {password} contient des caractères spéciaux, encadrez-le de guillemets doubles. À cause des règles de substitution propres à cron, échappez tout % avec un antislash, donc un mot de passe comme passw%rd devient -p "passw\\%rd".

4. Exemple

Sauvegarder toute la base toutes les 10 minutes, en gardant les 3 dernières archives :

*/10 * * * * /var/lib/jelastic/bin/backup_script.sh -m dumpall -c 3 -u root -p passw0rd

Sauvegarder le fichier cron — la nouvelle planification prend effet au prochain tick.

Où vont les sauvegardes

Le script écrit dans /var/lib/jelastic/backup à l’intérieur du conteneur, comme archives bz2. Après le premier passage planifié, vous verrez la première archive sur place.

Pour sortir les sauvegardes du nœud base de données — fortement recommandé pour tout ce qui touche à la production — monter /var/lib/jelastic/backup vers un stockage distant (un export NFS, un montage adossé S3, ou un nœud stockage dédié dans le même environnement). Les données existantes dans le point de montage sont remplacées par celles du répertoire distant, donc effectuer le montage avant que les sauvegardes ne démarrent.

Alternative : écrire un script personnalisé qui tourne sur un serveur distant et tire les dumps via le CNAME, l’IP privée ou l’IP publique de la base.

Télécharger une sauvegarde

Trois options :

  • Depuis le tableau de bord. Ouvrir le gestionnaire de fichiers, naviguer vers /var/lib/jelastic/backup, survoler l’archive, choisir Télécharger dans le menu contextuel.
  • SFTP / FISH. Utiliser les détails d’accès depuis le tableau de bord (section accès SFTP/FISH sur le nœud).
  • FTP. Installer le module FTP pour le nœud base de données. Cela nécessite une IP publique sur le conteneur base de données — s’il n’y en a pas encore, le module en attache une automatiquement.

Restaurer une base de données

Pour la famille MySQL via phpMyAdmin :

  1. Ouvrir phpMyAdmin depuis le bouton Ouvrir dans le navigateur sur le nœud base de données.
  2. Se connecter avec les identifiants du courriel à la création.
  3. Naviguer vers l’onglet Import, choisir Parcourir votre ordinateur, sélectionner l’archive, cliquer Go.
  4. En cas de succès, vous verrez une confirmation d’import dans le panneau d’administration.

Pour PostgreSQL, restaurer via psql sur le fichier dump. Pour MongoDB, restaurer via mongorestore. Les deux sont exécutables depuis la console Web SSH intégrée du conteneur.

Au-delà du script par défaut

Pour un ordonnancement plus riche (cibles multiples, stockage distant, restauration depuis une liste d’instantanés, archives chiffrées), utilisez le module Database Backup/Restore plutôt que le script par défaut. Le module couvre les mêmes moteurs et écrit nativement les archives vers un stockage distant.

Voir aussi