Aller au contenu principal

Gérer les sauvegardes

Ce guide couvre les quatre opérations principales de sauvegarde : créer une sauvegarde manuelle, générer un dump téléchargeable depuis un déploiement, télécharger une sauvegarde existante et restaurer une sauvegarde sur une branche.

remarque

La création, la restauration et l'import de sauvegardes nécessitent le rôle Admin sur le projet. Tout membre du projet peut télécharger une sauvegarde existante.

:::info Les sauvegardes nécessitent une cible de sauvegarde Les sauvegardes sont stockées dans la cible de sauvegarde configurée pour votre projet (par exemple un chemin de système de fichiers sur l'hôte de l'agent, ou un bucket de stockage d'objets). Si aucune cible de sauvegarde n'est définie, les sauvegardes planifiées ne s'exécutent pas et les téléchargements échouent avec une erreur « no backup target ».

Définissez la cible de sauvegarde dans Projet → Paramètres → Sauvegarde. :::


Sauvegardes automatiques​

Lorsqu'un projet dispose d'une cible de sauvegarde configurée, Skysize sauvegarde automatiquement chaque branche production.

  • Les sauvegardes ne s'exécutent que pour les branches production, les branches staging et development ne sont pas sauvegardées automatiquement.
  • Une nouvelle sauvegarde est effectuée au maximum une fois toutes les 24 heures par branche, et uniquement lorsque la branche est en cours d'exécution.
  • La branche doit disposer d'un déploiement réussi et actif ; les branches arrêtées ou supprimées sont ignorées.

Rétention​

Les sauvegardes automatiques suivent une politique de rétention père-fils :

  • Chaque sauvegarde des 7 derniers jours est conservée (le palier quotidien).
  • Une sauvegarde par semaine (une « ancre hebdomadaire ») est conservée pendant 3 mois maximum.
  • Sur le palier gratuit, seuls les 7 derniers jours sont conservés, le palier hebdomadaire est ignoré.

Pour une branche production sauvegardée quotidiennement, cela conserve environ 7 sauvegardes quotidiennes plus ~12 hebdomadaires.

Les sauvegardes manuelles et les sauvegardes importées sont conservées pendant 90 jours et ne sont pas soumises à l'élagage quotidien/hebdomadaire ci-dessus.


Créer une sauvegarde manuelle​

Vous pouvez déclencher une sauvegarde à tout moment, par exemple avant un déploiement majeur ou une migration de données.

  1. Ouvrez votre projet et accédez à l'onglet Déploiements.
  2. Trouvez le déploiement que vous souhaitez sauvegarder et cliquez sur Créer une sauvegarde.
  3. Dans la fenêtre Créer une sauvegarde manuelle, vous pouvez éventuellement remplir le champ Note (optionnel) pour étiqueter la sauvegarde (par exemple before migration).
  4. Cliquez sur Créer une sauvegarde.

La sauvegarde est mise en file d'attente et apparaît dans l'onglet Sauvegardes une fois terminée. Les sauvegardes manuelles sont stockées dans la même cible de sauvegarde que les sauvegardes automatiques.

remarque

Une sauvegarde manuelle nécessite également une cible de sauvegarde configurée. Si aucune n'est définie, la tâche de sauvegarde échouera.


Générer un dump téléchargeable depuis un déploiement​

Vous pouvez générer un dump ponctuel directement depuis un déploiement en cours d'exécution. C'est utile pour le développement local, les exports rapides ou le déplacement de données vers un autre hébergeur.

  1. Ouvrez votre projet et accédez à l'onglet Déploiements.
  2. Trouvez le déploiement que vous souhaitez exporter et cliquez sur Télécharger la sauvegarde.
  3. Dans la fenêtre Télécharger un dump, choisissez vos options :
    • Type : choisissez Dump de base de données neutralisé pour les tests/dépannage (désactive l'envoi d'emails, les actions planifiées et les autres intégrations en direct afin que le dump puisse être exécuté sans danger dans un environnement hors production) ou Dump exact de la base de données (une copie non modifiée).
    • Filestore : choisissez Avec Filestore (inclut les pièces jointes et les images) ou Sans Filestore (un dump plus petit, contenant uniquement la base de données).
  4. Cliquez sur Créer le dump.

Le dump est mis en file d'attente et vous êtes notifié lorsqu'il est prêt. Il apparaît dans l'onglet Sauvegardes, où vous pouvez le télécharger.


Télécharger une sauvegarde existante​

  1. Ouvrez votre projet et accédez à l'onglet Sauvegardes.
  2. Trouvez la sauvegarde souhaitée dans la liste.
  3. Cliquez sur Demander le téléchargement. Skysize prépare l'archive, puis l'action devient Télécharger la sauvegarde.

La sauvegarde est fournie sous forme d'archive .zip (un dump Odoo contenant la base de données SQL et, sauf exclusion, le filestore).

remarque

Le téléchargement lit depuis la cible de sauvegarde du projet. Si le projet n'a pas de cible de sauvegarde configurée, le téléchargement ne peut pas être servi.


Restaurer une sauvegarde​

Vous pouvez restaurer n'importe quelle sauvegarde sur n'importe quelle branche de votre projet, pas uniquement la branche sur laquelle elle a été créée. Un cas d'utilisation courant consiste à restaurer une sauvegarde de production dans le staging pour obtenir des données de test réalistes.

  1. Ouvrez votre projet et accédez à l'onglet Sauvegardes.
  2. Trouvez la sauvegarde que vous souhaitez restaurer.
  3. Cliquez sur Restaurer.
  4. Dans la fenêtre Restore backup, sélectionnez la branche cible dans Restore to branch.
  5. Confirmez.

Pendant une restauration, le conteneur cible est arrêté, sa base de données est remplacée, et le conteneur est redémarré avec les données restaurées.

attention

La restauration remplace l'intégralité de la base de données de la branche cible. Toutes les données actuellement présentes dans cette branche sont perdues. Si vous avez besoin de les conserver, créez d'abord une sauvegarde manuelle de la branche cible.

attention

Restaurer dans une branche production écrase la base de données de production en direct et ne peut pas être annulé. La fenêtre de restauration affiche un avertissement explicite dans ce cas.


Copie externe automatique​

Sur les plans payants, Skysize peut copier vos sauvegardes de production selon un calendrier vers un bucket qui vous appartient : Amazon S3, Google Cloud Storage, Cloudflare R2 ou tout stockage compatible S3. Vous disposez ainsi d'une seconde copie de vos données en dehors de la plateforme. Cette fonction n'est pas disponible sur l'offre gratuite ni pendant un essai.

La copie externe ne change rien au reste : les sauvegardes quotidiennes, leur rétention et les restaurations fonctionnent exactement comme décrit ci-dessus. Skysize écrit uniquement dans votre bucket. Il n'y supprime jamais rien et ne restaure jamais depuis celui-ci.

Ce qui est copié​

  • Selon le calendrier choisi (chaque semaine, toutes les 2 semaines ou chaque mois), Skysize prend la dernière sauvegarde complète de la branche production du projet et l'envoie dans votre bucket.
  • Chaque copie est un fichier .zip contenant la base de données et le filestore. C'est le même fichier que celui obtenu avec Télécharger la sauvegarde dans l'onglet Sauvegardes.
  • Les copies s'exécutent pendant la nuit, après la sauvegarde nocturne, à l'heure locale de la région du projet.
  • Pour les projets en mode SaaS, chaque base de données a son propre fichier.

Les fichiers sont rangés dans le bucket selon cette structure :

<prefix>/<nom du projet>/<base de données>/<AAAA-MM-JJ>_<id de la sauvegarde>.zip

Configuration​

Vous devez avoir le rôle Admin sur le projet.

  1. Créez un bucket chez votre fournisseur de stockage, ainsi qu'une clé d'accès pour ce bucket (voir Clé d'accès recommandée ci-dessous).
  2. Ouvrez votre projet et accédez à Paramètres, section Copie externe.
  3. Choisissez où envoyer les copies, puis remplissez ce que ce fournisseur demande :
    • Amazon S3 : le Bucket, sa Région et une clé d'accès.
    • Google Cloud Storage : le Bucket et une clé HMAC. Créez-la dans la console Google Cloud sous Cloud Storage, Paramètres, Interopérabilité, pour un compte de service qui peut écrire dans le bucket.
    • Cloudflare R2 : votre ID de compte Cloudflare (affiché sur la page d'aperçu R2), le Bucket et un jeton d'API R2 avec la permission Object Read & Write sur le bucket.
    • Autre compatible S3 (par exemple Wasabi, Backblaze B2, MinIO, OVHcloud ou Scaleway) : l'URL de l'endpoint du fournisseur (elle doit commencer par https://), le Bucket, la Région si votre fournisseur en utilise une, et une clé d'accès. Activez l'Adressage de type chemin (path-style) si votre fournisseur le demande.
    • En option, un Dossier dans le bucket.
  4. Cliquez sur Tester la connexion pour vérifier que Skysize peut écrire dans le bucket avant d'enregistrer.
  5. Choisissez le calendrier, puis cliquez sur Enregistrer. La section se replie en un court résumé ; cliquez dessus pour rouvrir les réglages.
  6. Cliquez sur Copier maintenant pour lancer immédiatement une première copie et vérifier que le fichier arrive dans votre bucket.

Pour changer ensuite la destination ou le calendrier, cliquez sur Modifier. L'interrupteur Activée met les copies en pause et les reprend sans changer la destination.

La clé secrète est stockée chiffrée et n'est plus jamais affichée après l'enregistrement. Pour la changer, saisissez-en une nouvelle.

:::note Fichier de test dans votre bucket Tester la connexion écrit un petit fichier nommé .skysize-connectivity-probe dans le bucket et l'y laisse, car une clé en écriture seule ne peut pas le supprimer. Vous pouvez le supprimer vous-même à tout moment. :::

Créez une clé d'accès dédiée qui peut uniquement écrire dans ce bucket et ce préfixe : pas de listage, pas de lecture, pas de suppression. Si la clé fuit, elle ne permet ni de lire ni d'effacer vos copies. Activez aussi le versioning ou l'object lock sur le bucket pour que les fichiers existants ne puissent pas être écrasés ou supprimés.

Sur AWS, une politique IAM pour une telle clé ressemble à ceci (remplacez your-bucket et your-prefix) :

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:AbortMultipartUpload"
],
"Resource": "arn:aws:s3:::your-bucket/your-prefix/*"
}
]
}

s3:PutObject suffit pour les gros fichiers, qui sont envoyés en plusieurs parties. s3:AbortMultipartUpload est optionnel et permet de nettoyer un envoi interrompu. Sur Google Cloud Storage, donnez au compte de service de la clé HMAC uniquement le rôle Storage Object Creator sur le bucket. Les autres fournisseurs proposent des clés restreintes similaires ; consultez leur documentation.

Rétention dans votre bucket​

Skysize n'applique aucune rétention à votre bucket et ne supprime jamais les anciennes copies. Pour maîtriser l'espace utilisé, ajoutez sur le bucket une règle de cycle de vie (lifecycle rule) qui fait expirer les copies après la durée souhaitée.

Statut et échecs​

La section Copie externe affiche :

  • la dernière copie réussie,
  • le dernier échec, avec le message d'erreur renvoyé par votre fournisseur,
  • l'historique des copies.

Si une copie échoue, les administrateurs du projet reçoivent une notification, dans le tableau de bord et par e-mail selon leurs préférences de notification. La copie est relancée automatiquement.

Restaurer depuis une copie externe​

Skysize ne restaure jamais directement depuis votre bucket. Pour utiliser une copie externe, téléchargez le .zip depuis votre bucket, puis envoyez-le avec Importer une sauvegarde dans l'onglet Sauvegardes. Voir Importer une sauvegarde Odoo existante.