Sauvegarde de bases de données PostgreSQL/MySQL vers un espace de stockage dans le cloud | INTROSERV
EUR
european

EUR

usa

USD

French Fr
Ex. VAT Ex. VAT 0%

Sauvegarde de PostgreSQL/MySQL vers un espace de stockage dans le cloud

Introduction

La sauvegarde des bases de données est l'une des procédures les plus importantes pour garantir la sécurité et la fiabilité des sites web et des applications. La perte de données peut survenir pour de nombreuses raisons : panne de serveur, erreur de l'administrateur, problèmes de mise à jour, logiciels malveillants ou simplement erreur humaine. Des sauvegardes régulières vous permettent de restaurer rapidement votre projet sans perte de données.

Ce guide explique comment sauvegarder des bases de données PostgreSQL et MySQL, comment stocker ces sauvegardes sur un serveur Linux distant à l'aide de rsync ou de scp, et comment les transférer vers un espace de stockage cloud à l'aide de rclone.

Sauvegarde de PostgreSQL

PostgreSQL fournit l’utilitaire standard pg_dump, qui permet de créer une copie complète de la base de données sous forme de fichier SQL.

Exemple de création d’une sauvegarde :

pg_dump -U myuser -h localhost mydatabase > /backup/mydatabase_$(date +%F).sql

Explication des paramètres :

  • -U myuser — nom d'utilisateur de la base de données
  • -h localhost — adresse du serveur (peut être omise si le serveur est local)
  • mydatabase — nom de la base de données
  • /backup/... — chemin de destination
  • $(date +%F) — ajoute la date du jour au nom du fichier

Pour gagner de l'espace, compressez immédiatement la sauvegarde :

pg_dump -U myuser mydatabase | gzip > /backup/mydatabase_$(date +%F).sql.gz

Pour sauvegarder toutes les bases de données du serveur :

pg_dumpall -U myuser | gzip > /backup/postgres_all_$(date +%F).sql.gz

Sauvegarde MySQL

Pour MySQL et MariaDB, utilisez l'utilitaire mysqldump.

Exemple de sauvegarde d’une seule base de données :

mysqldump -u myuser -p mydatabase > /backup/mydatabase_$(date +%F).sql

Lorsque vous exécutez cette commande, le système vous demandera le mot de passe de l'utilisateur.

Pour sauvegarder toutes les bases de données :

mysqldump -u myuser -p --all-databases | gzip > /backup/mysql_all_$(date +%F).sql.gz

Pour inclure les procédures stockées et les déclencheurs, ajoutez les options --routines --triggers.

Sauvegarde vers CloudBox

CloudBox d'INTROSERV est une solution de stockage dans le cloud prenant en charge plusieurs protocoles de connexion (notamment rsync, scp, rsync via SSH, WebDAV). La simplicité d'utilisation de CloudBox facilite considérablement les tâches de téléchargement, de gestion et de récupération des données.

Vous pouvez l'utiliser comme emplacement distant pour stocker vos sauvegardes de bases de données. Vous trouverez ci-dessous les détails de configuration et des exemples de scripts.

Étape 1. Obtenir l’accès à CloudBox

Commandez l’une des formules CloudBox disponibles sur notre site web — introserv.com

Une fois le paiement effectué, le service est disponible en quelques minutes. Après l’activation du service, vous recevrez les informations de connexion :

  • l'adresse du serveur (box#####.introserv.cloud)
  • nom d'utilisateur (box#####) et mot de passe

Étape 2. Connexion et synchronisation à l'aide de rsync ou scp

Utilisation de rsync (recommandée) :

rsync -avz -e "ssh -p 22" /backup/ user@cloudbox-server:/path_to_cloudbackups/

Où :

  • user — nom d’utilisateur CloudBox
  • cloudbox-server — adresse de connexion
  • /chemin_vers_les_sauvegardes_cloud/ — chemin d'accès sur CloudBox

Pour un fonctionnement automatisé, il est conseillé de configurer des clés SSH :

  1. Générer une clé publique :

    ssh-keygen -t rsa

  2. Copiez le contenu du fichier de clé publique créé, par exemple /root/.ssh/id_rsa.pub, dans le presse-papiers.
  3. Accédez à la section « Profil » (passez la souris sur l'icône utilisateur en haut à droite), ajoutez le contenu de la clé dans le champ « Clés publiques » et enregistrez les paramètres.

Désormais, rsync fonctionnera sans demander de mot de passe, ce qui est pratique pour les tâches cron.

Alternative — scp :

scp /backup/mysql_mydatabase.sql.gz user@cloudbox-server:/path_to_cloudbackups/

Étape 3. Connexion et synchronisation à l'aide de rclone

Si vous souhaitez utiliser rclone pour interagir avec CloudBox, configurez-le comme suit :

  1. Installez rclone :

    sudo apt install rclone

  2. Lancez la configuration :

    rclone config

Lors de la configuration, sélectionnez :

  • n — pour créer un nouveau
  • , par exemple « cloudbox »
  • type de stockage — choisissez sftp ou ssh
  • saisissez l'adresse du serveur au format box#####.introserv.cloud, le nom d'utilisateur au format box#####, le port (dans ce cas, le port SSH — 22 par défaut) et le chemin d'accès au répertoire
  • effectuez l'authentification (si nécessaire)

Testez la connexion :

rclone ls cloudbox:/path_to_cloudbackups/

Copiez les données de sauvegarde :

rclone copy /backup/ cloudbox:/db-backups/ --progress

Synchronisez en supprimant les fichiers manquants localement :

rclone sync /backup/ cloudbox:/db-backups/ --progress

Si nécessaire, cryptez les fichiers avant le transfert :

rclone copy /backup/ cloudbox:/db-backups/ --progress --crypt

Étape 4. Exemple de script d'automatisation avec CloudBox

Créez le script /usr/local/bin/db_backup_cloudbox.sh, par exemple :

#!/bin/bash DATE=$(date +%F) BACKUP_DIR="/backup/$DATE" mkdir -p $BACKUP_DIR # PostgreSQL pg_dump -U myuser mydatabase | gzip > $BACKUP_DIR/postgres_mydatabase.sql.gz # MySQL mysqldump -u myuser -p mydatabase | gzip > $BACKUP_DIR/mysql_mydatabase.sql.gz # Upload to CloudBox rsync -avz -e "ssh -p 22" $BACKUP_DIR/ user@cloudbox-server:/path_to_cloudbackups/$DATE/ # Upload to CloudBox (rclone option, uncomment if used) # rclone copy $BACKUP_DIR/ cloudbox:/db-backups/$DATE/ --progress # Remove backups older than 7 days find /backup/ -type f -mtime +7 -delete

Ajoutez ensuite une tâche cron (dans l'exemple, le script s'exécute tous les jours à 2 h du matin) :

0 2 * * * /usr/local/bin/db_backup_cloudbox.sh

Points importants à prendre en compte :

  • Assurez-vous que la connexion à CloudBox est stable et que la bande passante est suffisante.
  • Mettez en place une surveillance : vérifiez que les fichiers sont bien copiés.
  • Testez régulièrement la restauration à partir des sauvegardes CloudBox.
  • Lorsque vous utilisez des données confidentielles, pensez à chiffrer les sauvegardes.

Copie vers un serveur Linux distant via SSH

Si vous souhaitez stocker vos sauvegardes non seulement localement, mais également sur un autre serveur, utilisez rsync ou scp.

Utilisation de rsync (recommandé, car il ne copie que les modifications) :

rsync -avz -e "ssh -p 22" /backup/ [email protected]:/remote_backups/

Explication des paramètres :

  • user — nom d’utilisateur sur le serveur distant
  • remote.server — adresse IP ou nom de domaine du serveur distant
  • /remote_backups/ — chemin d'accès pour le stockage des sauvegardes

Pour fonctionner sans avoir à saisir de mot de passe, configurez les clés SSH :

# Generate SSH keys: ssh-keygen -t rsa # Copy key to remote server: ssh-copy-id [email protected]

Après cela, rsync fonctionnera sans demander de mot de passe, ce qui est pratique pour les tâches cron.

Alternative à rsync — utilisation de scp :

scp /backup/mysql_mydb.sql.gz [email protected]:/remote_backups/

Copie vers un espace de stockage cloud via rclone

Si vous avez besoin de stocker des sauvegardes dans le cloud (Google Drive, Dropbox, Amazon S3, etc.), utilisez rclone — un outil universel permettant de synchroniser des données avec divers services cloud.

Installation :

sudo apt install rclone

Configuration :

rclone config

Suivez les étapes de configuration interactive :

  • Sélectionnez n pour créer une nouvelle connexion
  • Saisissez un nom, par exemple « remote »
  • Sélectionnez le type de stockage (par exemple « s3 », « drive », « dropbox »)
  • Saisissez les clés d'accès ou effectuez l'autorisation via le navigateur

Vérifiez la connexion :

rclone ls remote:path

Exemple de transfert de sauvegardes vers le cloud :

rclone copy /backup/ remote:db-backups/ --progress

Commande de synchronisation (supprime les fichiers manquants localement) :

rclone sync /backup/ remote:db-backups/ --progress

Vous pouvez également chiffrer les fichiers avant leur transfert :

rclone copy /backup/ remote:db-backups/ --progress --crypt

Sécurité et contrôle

  • Stockez les sauvegardes à au moins deux emplacements : localement et à distance.
  • Vérifiez régulièrement que les sauvegardes sont bien créées et transférées.
  • Effectuez des restaurations tests au moins une fois par mois.
  • Chiffrez les fichiers contenant des données sensibles si vous utilisez des clouds publics :

    gpg -c /backup/mysql_mydatabase.sql.gz

  • Assurez-vous que les droits d'accès aux fichiers du répertoire /backup sont corrects et sécurisez vos identifiants de base de données.

Restauration à partir d'une sauvegarde

PostgreSQL :

gunzip < backup.sql.gz | psql -U myuser -d mydatabase

MySQL :

gunzip < backup.sql.gz | mysql -u myuser -p mydatabase

Conclusion

La sauvegarde des bases de données PostgreSQL et MySQL est une procédure simple mais d’une importance cruciale. Même l’infrastructure la plus fiable ne peut vous protéger contre les erreurs humaines ou les défaillances techniques. La meilleure stratégie consiste à effectuer régulièrement des sauvegardes automatisées stockées sur au moins un serveur externe et dans le cloud, et à réaliser des tests de restauration périodiques.

En combinant pg_dump, mysqldump, rsync, rclone et cron, vous pouvez mettre en place un système de sauvegarde fiable et entièrement automatisé sans avoir recours à aucun logiciel tiers payant. Cette approche est facile à mettre en œuvre et convient à tous les systèmes Linux.

VAT

  • Other

    Ex. VAT

    0%
  • austria

    Austria

    20%
  • Belgium

    Belgium

    21%
  • Bulgaria

    Bulgaria

    20%
  • Croatia

    Croatia

    25%
  • Cyprus

    Cyprus

    19%
  • Czech Republic

    Czech Republic

    21%
  • Denmark

    Denmark

    25%
  • Estonia

    Estonia

    22%
  • France

    France

    20%
  • Finland

    Finland

    24%
  • Germany

    Germany

    19%
  • Greece

    Greece

    24%
  • Hungary

    Hungary

    27%
  • Ireland

    Ireland

    23%
  • Italy

    Italy

    22%
  • Latvia

    Latvia

    21%
  • Lithuania

    Lithuania

    21%
  • Luxembourg

    Luxembourg

    17%
  • Malta

    Malta

    18%
  • Netherlands

    Netherlands

    21%
  • Poland

    Poland

    23%
  • Portugal

    Portugal

    23%
  • Romania

    Romania

    19%
  • Slovakia

    Slovakia

    20%
  • Slovenia

    Slovenia

    22%
  • Spain

    Spain

    21%
  • Sweden

    Sweden

    25%
  • USA

    USA

    0%
european
states
  • germany
  • Español
  • Italiano
  • Poland
  • Русский
  • Slovenski
  • Türkçe
  • ukraine
  • kingdom
  • French
  • Hrvatska
  • Other
  • Austria
  • Belgium
  • Bulgaria
  • Croatia
  • Cyprus
  • Czech Republic
  • Denmark
  • Estonia
  • Finland
  • France
  • Germany
  • Greece
  • Hungary
  • Ireland
  • Italy
  • Latvia
  • Lithuania
  • Luxembourg
  • Malta
  • Netherlands
  • Poland
  • Portugal
  • Romania
  • Slovakia
  • Slovenia
  • Spain
  • Sweden
  • USA