Mettre en place un dump MySQL sur un pod "db"
Vous pouvez programmer des sauvegardes de votre base de données MySQL instanciée par un pod "db". Dans chaque projet PLMShift, vous pouvez ajouter le template "Dump MySQL Database" à votre application (voir documentation). Ce template ajoutera un cronjob à votre projet qui executera le dump à intervalle regulier.
Le fichier dump MySQL sera créé dans le volume persistent déclaré dans le "storage" de votre projet. A chaque exécution, le fichier sera écrasé par le nouveau dump.
Afin de garder un historique des dumps de vos bases de données, vous pouvez utiliser BorgBackup.
Installation
Valeurs à renseigner :
- APPLICATION_NAME : indiquez un nom d'application unique (vous pouvez laisser la valeur par défaut si vous n'avez pas déjà déployé ce template dans votre projet)
- VOLUME_CLAIM : le nom du volume où le fichier sera créé (voir dans menu storage)
- MYSQL_HOST : le nom du service associé au pod MySQL (dans Applications -> Services)
- MYSQL_DATABASE : voir dans les variables d'environnement du déploiement
- MYSQL_USER : voir dans les variables d'environnement du déploiement
- MYSQL_PWD : voir dans les variables d'environnement du déploiement
Verification et cycle de vie du CronJob
Vous pouvez verifier l'existance du CronJob via la CLI en executant la commande suivante sur votre projet :
oc get cronjob
NAME SCHEDULE SUSPEND ACTIVE LAST SCHEDULE AGE
mysqldump 0 1 * * * False 0 1m 23m
Pour le supprimer
En ligne de commande
oc delete cronjob/monCronJob
Vous devez egalement supprimer le "provisionned service" dans l'interface web (voir ci-dessous)
Sur l'interface Web
Sur l'Overview, supprimer le "Provisioned Services" correspondant à BorgBackup, en cliquant sur les 3 petits points, puis delete.
Restaurer une base données à partir d'un dump MySQL
En ligne de commande exclusivement
Si votre fichier a été sauvegardé avec le template Borg, suivre la procédure de récupération ici.
-
Copier le fichier dump MySQL dans le pod "db" voir les commandes CLI.
-
Se connecter au pod "db" avec
oc rsh nom_du_pod
-
Et utiliser la commande mysql avec les options précisées ci-dessous :
mysql -u $MYSQL_USER -p$M&²YSQL_PWD $MYSQL_DATABASE < mon_dump_MySQL.sql
ATTENTION : cette commande remplace le contenu de la bases données