Skip to content
Snippets Groups Projects

Rotation des backups des bases de données

Picasoft réalise régulièrement des backups de ses bases de données. Le service qui s'occupe des backups ne s'occupe pas de supprimer les backups trop anciens. C'est le but de ce service.

Il est flexible et se configure via des fichiers JSON.

La rotation est effectuée une fois par jour.

Configuration

Le fichier config/backup_data.json recense les informations sur les différents services mis en place sur les machines et les informations nécessaires pour lancer les rotations sur ces services.

Ce fichier est le fichier utilisé en production. Il est unique et recense les services de toutes les machines. Si les backups sont effectués sur une autre machine virtuelle, alors le dossier spécifié dans la configuration est simplement ignoré.

Il ne doit pas être modifié sur les machines sans être synchronisé avec le dépôt Git.

Structure

  • Nom du service : Contient une structure de données contenant les informations relatives au service telles qu'indiquées ci-dessous
  • Folder : Indique le nom du dossier de backup utilisé par le script de backup et de rotation
  • Backup-Rota : Contient les paramètres pour la rotation des backups dans une structure de données comme indiqué ci-dessous
    • Hour : nombre de backups horaires à conserver
    • Day : nombre de backups quotidiens à conserver
    • Week : nombre de backups hebdomadaires à conserver
    • Month: nombre de backups mensuels à conserver

Exemple

{
  "wekan":
    {
      "Host": "wekan-db",
      "Port": "27017",
      "Database": "wekan",
      "Type": "mongo",
      "Folder": "wekan",
      "Cron" : "0 * * * *",
      "Init-Backup" : "0",
      "Backup-Rota":
          {
              "Hour" : 24,
              "Day" : 7,
              "Week" : 4,
              "Month" : 12
          }
    },
  "etherpad":
    {
      "Host": "etherpad-db",
      "Port": "3306",
      "User": "root",
      "Password": "lolilolilol",
      "Database": "--all-databases",
      "Type": "mysql",
      "Folder": "etherpad",
      "Cron" : "0 * * * *",
      "Options" : "--single-transaction",
      "Init-Backup" : "0",
      "Backup-Rota":
          {
              "Hour" : 24,
              "Day" : 7,
              "Week" : 4,
              "Month" : 12
          }
    }
}

Lancement

On se synchronise simplement avec le dépôt et on lance le Docker Compose :

$ docker-compose up -d