amipo_documentation_backup
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédenteProchaine révisionLes deux révisions suivantes | ||
amipo_documentation_backup [2020/01/10 17:17] – bigMax | amipo_documentation_backup [2020/01/27 14:45] – bigMax | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
< | < | ||
- | # Documentation des Backup | + | # Documentation des Sauvegardes |
- | ## Restauration d'un backup | + | ## Réalisation des Sauvegardes |
+ | ### Fichiers sauvegardées | ||
+ | * Le schéma de la base de données | ||
+ | * Les données de la base de données | ||
+ | * Les données hors base (le système de fichier / | ||
+ | * Les fichiers exécutables de l' | ||
+ | * Les fichiers de logs du nextcloud de prod (/ | ||
+ | * Les fichiers de config nginx (/ | ||
+ | |||
+ | |||
+ | ### Scripts de Sauvegarde | ||
+ | Les scripts de backups sont entreposés ici : https:// | ||
+ | Actuellement il y a 2 scripts : | ||
+ | * backup_nextcloud.sh : effectue le backup de l' | ||
+ | * restore_nextcloud_maintenance.sh : s' | ||
+ | |||
+ | |||
+ | ### Principes de la Sauvegarde | ||
+ | - Création d'un nouveau dossier pour recueillir les fichiers à sauvegardées dans le dossier conteneur de backups (/ | ||
+ | - Mise en mode maintenance de l' | ||
+ | - Création du dump de la BD (schéma et data) | ||
+ | - Copie du système de fichier " | ||
+ | - Remise en route de l' | ||
+ | - Copie des autres systèmes de fichiers (exécutables, | ||
+ | - Création d'une archive compréssée au format tar.gz à partir du nouveau dossier créé à l' | ||
+ | - Suppression du dossier créé à l' | ||
+ | - Vérification et Suppression des anciennes archives vieilles de plus de 7 jours. | ||
+ | |||
+ | |||
+ | ### Sécuritées | ||
+ | - Actuellement, | ||
+ | - Le script de backup ne plante pas en cas d' | ||
+ | - Si le script de backup vient à planter, on execute alors le script restore_nextcloud_maintenance.sh pour ne pas laisser l' | ||
+ | - Un rapport est envoyé par email après chaque déroulement des backups. Ce rapport contient les logs des scripts, et un état du dossier contenant les ancienes archives (nombre d' | ||
+ | |||
+ | |||
+ | ### Automatisation de la Sauvegarde | ||
+ | * Le backup est automatisé par un cronjob de l' | ||
+ | ``` | ||
+ | # Nextcloud backup | ||
+ | 0 2 * * * ( export PGPASSWORD=" | ||
+ | ``` | ||
+ | * Le cronjob est exécuté chaque nuit à 02h00. | ||
+ | * Les sorties d' | ||
+ | |||
+ | |||
+ | ### Sauvegarde de la base de données | ||
+ | * Les sauvegardes de la base de données sont séparées en 2 fichiers : la structure et les données. | ||
+ | * La sauvegarde de la structure des données est sauvegardé au format texte compressé (.psql.gz). | ||
+ | * Les données sont sauvegardé au format custom postgres déjà compréssé (.custom), cela permet une restauration plus rapide. | ||
+ | * On ne sauvegarde que le contenu du schéma " | ||
+ | * Un utilisateur spécifique dans la BD réalise les sauvegardes : " | ||
+ | |||
+ | |||
+ | ## Restauration d'une Sauvegarde | ||
+ | |||
+ | ### Création de la BD dans lequel sera effectué la restauration | ||
``` psql | ``` psql | ||
create role restore_user; | create role restore_user; | ||
alter role restore_user encrypted password ' | alter role restore_user encrypted password ' | ||
alter role restore_user login; | alter role restore_user login; | ||
+ | |||
+ | alter role restore_user set search_path to nextcloud; | ||
create database restore_nextcloud; | create database restore_nextcloud; | ||
- | \c restore_nextcloud | + | \c restore_nextcloud; |
- | create schema | + | create schema |
- | grant all on schema | + | grant usage on schema |
- | alter role restore_user | + | grant all on all tables in schema nextcloud to restore_user; |
+ | grant all on all sequences in schema nextcloud | ||
``` | ``` | ||
+ | ### Restauration de la BD | ||
``` bash | ``` bash | ||
sudo mkdir / | sudo mkdir / | ||
sudo chown max:max / | sudo chown max:max / | ||
cd / | cd / | ||
+ | sudo chown -R max:max * | ||
sudo tar -xzf / | sudo tar -xzf / | ||
+ | sudo chown www-data: | ||
psql -U restore_user -h localhost -d restore_nextcloud -c "show search_path;" | psql -U restore_user -h localhost -d restore_nextcloud -c "show search_path;" | ||
+ | |||
+ | zcat schema-nextcloud-dump.psql.gz | sudo -u postgres -s psql -d restore_nextcloud | ||
+ | sudo -u postgres -s pg_restore -d restore_nextcloud data-nextcloud-dump.custom | ||
``` | ``` | ||
- | | + | |
- | grant connect on nextcloud | + | ### Duplication de l' |
- | grant usage on schema public to nextcloud_backup; | + | ``` bash |
- | grant select on all tables in schema public to nextcloud_backup; | + | sudo cp -ar / |
- | grant select on all sequences in schema public to nextcloud_backup; | + | ``` |
- | | + | Edition du fichier / |
+ | ``` php | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ``` | ||
+ | |||
+ | Ajouter un cronjob | ||
+ | ``` bash | ||
+ | sudo mkdir -p / | ||
+ | sudo chown root: | ||
+ | sudo chmod 0660 / | ||
+ | sudo crontab -e -u www-data | ||
+ | */5 * * * * php -f / | ||
+ | ``` | ||
+ | |||
+ | ### Config Nginx | ||
+ | sudo cp / | ||
+ | Remplacement de /nuage par / | ||
+ | Ajout dans / | ||
</ | </ |
amipo_documentation_backup.txt · Dernière modification : 2020/10/09 07:04 de serge