Aller au contenu

Confluence - Backup / Restore#

Cette page décrit la procédure pour sauvegarder et restaurer les données applicatives et les bases de données MySQL liées à Jira ou Confluence. Il s'agit d'une procédure manuelle qui vient en complément des plans de sauvegarde automatique. Cette procédure est utile pour créer une sauvegarde avant une opération à risque sur le service ou pour restaurer des données à la suite d'un incident.

Le mécanisme de sauvegarde s'appuie sur Restic, le client est installé par défaut sur les serveurs.

Politique de rétention#

On conserve :

  • Toutes les sauvegardes sur les 14 derniers jours (Automatiques et manuelles)
  • Une sauvegarde par semaine pendant un mois (la plus récente)
  • Une sauvegarde par mois pendant 6 mois (la plus récente).

Sauvegarde automatique#

La base de données et les données applicatives sont sauvegardées quotidiennement en HNO.

La planification est définie via un timer systemd

systemctl list-timers backup.timer
NEXT                        LEFT          LAST                        PASSED       UNIT                         ACTIVATES
Thu 2024-01-11 03:00:00 UTC 18h left      Wed 2024-01-10 03:00:01 UTC 5h 9min ago  backup.timer                 backup.service

Sauvegarde manuelle#

Pour exécuter une sauvegarde complète (Données + base de données), il faut utiliser le service backup

sudo systemctl start backup.service

La sauvegarde est terminée quand on revient au prompt, sachant qu'il est possible de consulter le compte-rendu des dernières sauvegardes

sudo journalctl -u backup.service

Et de lister les sauvegardes existantes

sudo -i restic snapshots
repository ad2d863a opened (version 2, compression level auto)
ID        Time                 Host            Tags                              Paths
----------------------------------------------------------------------------------------------------------
...
0ee64d0c  2024-01-07 03:00:03  confluence-stg  confluence,database,mysql         /mysql
88b86c35  2024-01-07 03:00:05  confluence-stg  confluence,database,confluencedb  /confluencedb
7b237926  2024-01-07 03:00:31  confluence-stg  confluence,data                   /var/atlassian/confluence
...
----------------------------------------------------------------------------------------------------------
24 snapshots

Restauration complète#

1. Réinstallation de l'application#

Danger

Lors de la réinstallation du service Jira ou Confluence, il ne faut surtout pas appliquer le bootstrap. Vous risqueriez de perdre les secrets des comptes admin, bases de données et chiffrement des sauvegardes.

  • Réinstallation de Jira

OU

2. Paramétrer la restauration#

Se connecter en root sur le serveur à restaurer

Définir l'application à restaurer (Jira ou Confluence)

export APP='jira'
#export APP='confluence'

3. Restauration des bases de données#

# Stop service
systemctl stop "${APP}.service"

# Get IDs snapshots
restic snapshots --tag mysql
ID_DB_MYSQL='<ID>'

restic snapshots --tag "${APP}db"
ID_DB_APP='<ID>'

# Restore dumps mysql + application
restic dump "${ID_DB_MYSQL}" mysql | mysql -D mysql
restic dump "${ID_DB_APP}" "${APP}db" | mysql -D "${APP}db"

4. Restauration des données#

# Get IDs snapshots
restic snapshots --tag data
ID_DATA='<ID>'

# Restore application data
restic restore "${ID_DATA}" --target /

5. Redémarrage et vérifications#

Redémarrer le service applicatif

# Start service
systemctl start "${APP}.service"

Et vérifier les logs applicatifs