Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédenteDernière révisionLes deux révisions suivantes |
txs:infra-p18 [2018/03/28 12:43] – principe de fonctionnement de rotate-backups algilber | txs:infra-p18 [2018/05/19 17:03] – [TX Printemps 2018 : Backup] algilber |
---|
====== TX Printemps 2018 : Backup, Docker et Sécurité ====== | ====== TX Printemps 2018 : Sauvegarde des base de données et rotation ====== |
| |
===== Backup ===== | |
| |
==== Configuration des sauvegardes et des rotations ==== | ==== Configuration des sauvegardes et des rotations ==== |
"Cron" : "0 * * * *", | "Cron" : "0 * * * *", |
"Init-Backup" : "0", | "Init-Backup" : "0", |
"Backup-rota": | "Backup-Rota": |
{ | { |
"Hour" : 24, | "Hour" : 24, |
"Options" : "--single-transaction", | "Options" : "--single-transaction", |
"Init-Backup" : "0", | "Init-Backup" : "0", |
"Backup-rota": | "Backup-Rota": |
{ | { |
"Hour" : 24, | "Hour" : 24, |
* "Password" : mot de passe de la base de données ; | * "Password" : mot de passe de la base de données ; |
* "Database": nom de la base de données ; | * "Database": nom de la base de données ; |
* "Type": type de la base de données ; | * "Type": type de la base de données (mongo, mysql, postgre); |
* "Folder": nom du dossier de sauvegarde du service ; | * "Folder": nom du dossier de sauvegarde du service ; |
* "Cron" : indicateur de temps cron indiquant à quelle fréquence sont enregistrées les backups ; | * "Cron" : indicateur de temps cron indiquant à quelle fréquence sont enregistrées les backups ; |
* "Backup-rota": période de rotation voulue, il est possible de définir 4 paramètres //Hour//, //Day//, //Week//, //Month//. | * "Backup-rota": période de rotation voulue, il est possible de définir 4 paramètres //Hour//, //Day//, //Week//, //Month//. |
| |
| Le fichier de configuration se trouve actuellement sur pica01-test dans le dossier |
| <code bash> |
| /DATA/CONFIG |
| </code> |
| |
==== Principe de fonctionnement de la rotation des sauvegardes ==== | ==== Principe de fonctionnement de la rotation des sauvegardes ==== |
| |
L'interprétation de la commande est la suivante : on souhaite conserver la sauvegarde la plus récente effectuée sur chaque heure pendant les dernières 24h (on conserve 24 backups si on en a au moins une par heure) , la sauvegarde la plus récente effectuée chaque jour pendant les 7 derniers jours (on conserve 7 backups si on en a au moins une par jour), la sauvegarde la plus récente effectuée sur chaque semaine pendant les 4 dernières semaines (on conserve 4 backups si on en a au moins une par semaine), et enfin la sauvegarde la plus récente effectuée chaque année pendant les 2 dernières années (on en a au moins deux si on a réalisé au moins une sauvegarde par année). | L'interprétation de la commande est la suivante : on souhaite conserver la sauvegarde la plus récente effectuée sur chaque heure pendant les dernières 24h (on conserve 24 backups si on en a au moins une par heure) , la sauvegarde la plus récente effectuée chaque jour pendant les 7 derniers jours (on conserve 7 backups si on en a au moins une par jour), la sauvegarde la plus récente effectuée sur chaque semaine pendant les 4 dernières semaines (on conserve 4 backups si on en a au moins une par semaine), et enfin la sauvegarde la plus récente effectuée chaque année pendant les 2 dernières années (on en a au moins deux si on a réalisé au moins une sauvegarde par année). |
| |
| Le rôle du conteneur //backup-rotation// est de créer une tâche cron horaire pour chaque service défini dans le fichier de configuration JSON avec les périodes de rotation spécifiées. |
| |
==== Test du conteneur de rotation ==== | ==== Test du conteneur de rotation ==== |
2018-03-26184318.tar.gz | 2018-03-26184318.tar.gz |
| |
| |
| Pour tester ensuite le conteneur de rotation, il suffit d'indiquer le dossier dans lequel ont été générées les fausses backups dans le fichier //backup_data.json// en spécifiant les périodes de rotations voulues. |
| |
| Exemple de configuration de test : |
| |
| <code javascript backup_data.json> |
| { |
| "test_rotation": |
| { |
| "Folder": "test_rotation", # Dossier /DATA/BACKUP/test_rotation/ |
| "Backup-Rota": |
| { |
| "Hour" : 24, |
| "Day" : 7, |
| "Week" : 4, |
| "Month" : 12 |
| } |
| } |
| } |
| </code> |
| |
| |