Skip to content
Snippets Groups Projects
backup.md 1.3 KiB
Newer Older
  • Learn to ignore specific revisions
  • Bastien DUMONT's avatar
    Bastien DUMONT committed
    # Backup
    
    
    Rémi PAILHAREY's avatar
    Rémi PAILHAREY committed
    ## Principles
    
    
    Backups are scheduled automatically with the help of CronJobs on Openshift.
    
    Rémi PAILHAREY's avatar
    Rémi PAILHAREY committed
    
    ## Backup manually
    
    
    To backup manually, use `oc login` and `oc project` to authenticate to the correct namespace, then run this command :
    
    Bastien DUMONT's avatar
    Bastien DUMONT committed
    ```sh
    
    oc create job --from cronjob/mysql-dump-cronjob-hourly nom_du_job
    
    Rémi PAILHAREY's avatar
    Rémi PAILHAREY committed
    ```
    
    ## Restore manually
    
    
    - Monter un pod du déploiement "database-restore"
    - Rentrer dans le terminal de ce pod
    - Aller dans le dossier des dumps horaires `cd /dump/hourly` ou journaliers `cd /dump/hourly` ou hebdomadaires `cd /dump/weekly`
    - Décompresser le dump souhaité `gzip -d YYYY-MM-dd_hh:mm:ss.sql.gz`
    - Restorer ce dump (remplacer seulement YYYY-MM-dd_hh:mm:ss.sql) `mysql -uroot -p$MYSQL_ROOT_PASSWORD -h$DATABASE_HOST $MYSQL_DATABASE < YYYY-MM-dd_hh:mm:ss.sql`
    
    
    :::danger
    
    Si par malheur, le pod MySQL est interrompu pendant une transaction, il est possible que la base soit 'lockée' et que le restore ne soit pas possible. Dans ce cas, suivre les instructions ci-dessous :
    
    - Stopper les pods client, server et database
    - Monter un pod du déploiement "busybox"
    - Rentrer dans le terminal de ce pod
    - Supprimer le contenu de la base de données `rm -rf /dump/mysql/*`
    - Relancer le pod database et attendre que celui-ci soit disponible
    - Réessayer le restore
    - Relancer les pods client et server
    
    :::