forked from ScoDoc/DocScoDoc
Cosmétique et correction
This commit is contained in:
parent
969143829e
commit
6631a40891
@ -1,6 +1,5 @@
|
|||||||
|
# Mise en place de sauvegardes des bases de données ScoDoc 9
|
||||||
|
|
||||||
|
|
||||||
# Mise en place de sauvegardes des bases de données ScoDoc 9
|
|
||||||
Il est ***vivement recommandé*** de mettre en place une stratégie de sauvegarde
|
Il est ***vivement recommandé*** de mettre en place une stratégie de sauvegarde
|
||||||
permettant de rétablir le service en minimisant les pertes de données à la suite
|
permettant de rétablir le service en minimisant les pertes de données à la suite
|
||||||
d'un accident majeur mais probable comme: crash de disque dur, bug, vol du
|
d'un accident majeur mais probable comme: crash de disque dur, bug, vol du
|
||||||
@ -8,22 +7,22 @@ serveur, incendie...
|
|||||||
|
|
||||||
Nous recommandons d'agir à deux niveaux:
|
Nous recommandons d'agir à deux niveaux:
|
||||||
|
|
||||||
* sauvegarde des bases de données postgresql: dump des bases dans des fichiers.
|
* sauvegarde des bases de données postgresql: dump des bases dans des fichiers.
|
||||||
Le script donné ci-dessous peut se charger de gérer cela.
|
Le script donné ci-dessous peut se charger de gérer cela.
|
||||||
|
|
||||||
* sauvegarde du système complet (et de ses disques durs): la forme dépend de
|
* sauvegarde du système complet (et de ses disques durs): la forme dépend de
|
||||||
l'environnement (machine virtuelle ou non...). Dans tous les cas, les données
|
l'environnement (machine virtuelle ou non...). Dans tous les cas, les données
|
||||||
doivent être sauvegardées dans une salle (voire un bâtiment) différente de
|
doivent être sauvegardées dans une salle (voire un bâtiment) différente de
|
||||||
celle abritant le serveur ScoDoc (vols ou incendies). Typiquement, une
|
celle abritant le serveur ScoDoc (vols ou incendies). Typiquement, une
|
||||||
sauvegarde quotidienne (nocturne) est suffisante.
|
sauvegarde quotidienne (nocturne) est suffisante.
|
||||||
|
|
||||||
Notons que ScoDoc sauvegarde de nombreuses informations sous le répertoire
|
Notons que ScoDoc sauvegarde de nombreuses informations sous le répertoire
|
||||||
`/opt/scodoc-data` (en particulier les photos, les documents archivés et divers
|
`/opt/scodoc-data` (en particulier les photos, les documents archivés et divers
|
||||||
réglages): *il est absolument nécessaire de sauvegarder aussi ce répertoire*, en
|
réglages): *il est absolument nécessaire de sauvegarder aussi ce répertoire*, en
|
||||||
plus des bases de données SQL.
|
plus des bases de données SQL.
|
||||||
|
|
||||||
|
## Dump des bases de données
|
||||||
|
|
||||||
## Dump des bases de données
|
|
||||||
Le script `backup_db9` (fourni dans le répertoire `/opt/scodoc/tools/backups`)
|
Le script `backup_db9` (fourni dans le répertoire `/opt/scodoc/tools/backups`)
|
||||||
peut être utilisé pour effectuer des sauvegardes automatisées des bases de
|
peut être utilisé pour effectuer des sauvegardes automatisées des bases de
|
||||||
données SQL. Les données sont extraites de la base et écrites sur le disque
|
données SQL. Les données sont extraites de la base et écrites sur le disque
|
||||||
@ -39,26 +38,28 @@ derniers mois (tout ceci est paramétrable dans le script
|
|||||||
Par défaut, les fichiers de sauvegardes sont créés dans le répertoire de
|
Par défaut, les fichiers de sauvegardes sont créés dans le répertoire de
|
||||||
l'utilisateur `postgres` (actuellement `/var/lib/postgresql/`).
|
l'utilisateur `postgres` (actuellement `/var/lib/postgresql/`).
|
||||||
|
|
||||||
|
|
||||||
En tant que `root` sur le serveur, faire:
|
En tant que `root` sur le serveur, faire:
|
||||||
```
|
|
||||||
|
```bash
|
||||||
# su postgres
|
# su postgres
|
||||||
# cd
|
# cd
|
||||||
# crontab -e
|
# crontab -e
|
||||||
```
|
```
|
||||||
|
|
||||||
et ajouter:
|
et ajouter:
|
||||||
```
|
|
||||||
|
```bash
|
||||||
15 * * * * /opt/scodoc/tools/backups/backup_db9 SCODOC
|
15 * * * * /opt/scodoc/tools/backups/backup_db9 SCODOC
|
||||||
```
|
```
|
||||||
(ScoDoc9 utilise par défaut la base nommée `SCODOC`, adaptez si vous l'avez configuré sur une autre base).
|
|
||||||
|
|
||||||
|
(ScoDoc9 utilise par défaut la base nommée `SCODOC`, adaptez si vous l'avez
|
||||||
|
configuré sur une autre base).
|
||||||
|
|
||||||
|
## En cas de problème: restaurer la base à partir d'une sauvegarde
|
||||||
|
|
||||||
## En cas de problème: restaurer la base à partir d'une sauvegarde
|
🚸 Attention, certaines informations sont stockées dans des fichiers et non dans
|
||||||
<img src="/img/alert.png" style="vertical-align: bottom; margin:0 0 0 0;"
|
la base de données: configuration du logiciel, photos des étudiants. Ce
|
||||||
alt="/!\" /> Attention, certaines informations sont stockées dans des fichiers
|
paragraphe ne traite que de la restauration de la base de données.
|
||||||
et non dans la base de données: configuration du logiciel, photos des étudiants.
|
|
||||||
Ce paragraphe ne traite que de la restauration de la base de données.
|
|
||||||
|
|
||||||
Rappel: en ScoDoc 9, il n'y a qu'une seule base de donnée SQL, nommée par défaut
|
Rappel: en ScoDoc 9, il n'y a qu'une seule base de donnée SQL, nommée par défaut
|
||||||
`SCODOC`. Cette base contient les données des départements et la définition des
|
`SCODOC`. Cette base contient les données des départements et la définition des
|
||||||
@ -70,23 +71,23 @@ comptes utilisateurs.
|
|||||||
`/var/lib/postgresql/SCODOC-BACKUPS`où `XXX` est concerné. Utiliser par
|
`/var/lib/postgresql/SCODOC-BACKUPS`où `XXX` est concerné. Utiliser par
|
||||||
exemple `ls -lrt` pour visualiser les sauvegardes triées par date.
|
exemple `ls -lrt` pour visualiser les sauvegardes triées par date.
|
||||||
|
|
||||||
1. Copier le fichier de sauvegarde choisi et le décomprimer; par exemple:
|
1. Copier le fichier de sauvegarde choisi et le décomprimer; par exemple:
|
||||||
|
|
||||||
```
|
```bash
|
||||||
cp /var/lib/postgresql/SCODOC-BACKUPS/backup.hourly/2021-09-17T19\:15/SCODOC_pgdump.gz /tmp
|
cp /var/lib/postgresql/SCODOC-BACKUPS/backup.hourly/2021-09-17T19\:15/SCODOC_pgdump.gz /tmp
|
||||||
gunzip /tmp/SCODOC_pgdump.gz
|
gunzip /tmp/SCODOC_pgdump.gz
|
||||||
```
|
```
|
||||||
|
|
||||||
3. Recharger la base complète. <img src="/img/alert.png" style="vertical-align:
|
1. Recharger la base complète. 🚸 Attention, *cette opération effacera et
|
||||||
bottom; margin:0 0 0 0;" alt="/!\" /> Attention, cette opération effacera et
|
remplacera le contenu de la base de données actuelle !*
|
||||||
remplacera) le contenu de la base de données actuelle...
|
|
||||||
```
|
```bash
|
||||||
# en tant que root...
|
# en tant que root...
|
||||||
systemctl stop scodoc9 # arret du serveur
|
systemctl stop scodoc9 # arret du serveur
|
||||||
su - scodoc
|
su - scodoc
|
||||||
dropdb SCODOC # <<< votre base production
|
dropdb SCODOC # <<< votre base production
|
||||||
createdb -E UTF-8 SCODOC
|
createdb -E UTF-8 SCODOC
|
||||||
pg_restore -d SCODOC /tmp/SCODOC_pgdump.gz # (nom du fichier dump)
|
pg_restore -d SCODOC /tmp/SCODOC_pgdump # (nom du fichier dump)
|
||||||
source venv/bin/activate
|
source venv/bin/activate
|
||||||
flask db upgrade # nécessaire seulement si sauvegarde ancienne
|
flask db upgrade # nécessaire seulement si sauvegarde ancienne
|
||||||
flask clear-cache
|
flask clear-cache
|
||||||
@ -96,12 +97,15 @@ systemctl start scodoc9 # relance ScoDoc
|
|||||||
```
|
```
|
||||||
|
|
||||||
## Déplacement de toute une installation
|
## Déplacement de toute une installation
|
||||||
|
|
||||||
Les scripts ci-dessus ne se chargent que de la base de données SQL.
|
Les scripts ci-dessus ne se chargent que de la base de données SQL.
|
||||||
|
|
||||||
Pour créer une sauvegarde complète d'une installation, vous pouvez utiliser le
|
Pour créer une sauvegarde complète d'une installation, vous pouvez utiliser le
|
||||||
script
|
script
|
||||||
|
|
||||||
|
```bash
|
||||||
tools/save_scodoc9_data.sh /tmp/sauvegarde-scodoc.tgz
|
tools/save_scodoc9_data.sh /tmp/sauvegarde-scodoc.tgz
|
||||||
|
```
|
||||||
|
|
||||||
Ce script va générer une archive (`tar`, format `.tgz`) contenant non seulement
|
Ce script va générer une archive (`tar`, format `.tgz`) contenant non seulement
|
||||||
la base de données SQL mais aussi tous les fichiers générés par votre ScoDoc:
|
la base de données SQL mais aussi tous les fichiers générés par votre ScoDoc:
|
||||||
@ -117,10 +121,10 @@ Pour restaurer ce type de sauvegarde, sur une autre machine (ou plus tard sur la
|
|||||||
même), transférer le fichier généré (`/tmp/sauvegarde-scodoc.tgz`) dans
|
même), transférer le fichier généré (`/tmp/sauvegarde-scodoc.tgz`) dans
|
||||||
l'exemple ci-dessus) et utiliser
|
l'exemple ci-dessus) et utiliser
|
||||||
|
|
||||||
|
```bash
|
||||||
tools/restore_scodoc9_data.sh /tmp/sauvegarde-scodoc.tgz
|
tools/restore_scodoc9_data.sh /tmp/sauvegarde-scodoc.tgz
|
||||||
|
```
|
||||||
|
|
||||||
(Note: la sauvegarde s'effectue comme utilisateur `scodoc`, en revanche le
|
(Note: la sauvegarde s'effectue comme utilisateur `scodoc`, en revanche le
|
||||||
rechargement doit se faire en tant que `root` car il faut évidemment arrêter et
|
rechargement doit se faire en tant que `root` car il faut évidemment arrêter et
|
||||||
relancer le service).
|
relancer le service).
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user