3. Gestion des sauvegardes d'Open-Prod

Présentation des différentes méthodes et fonctions permettant d'effectuer des sauvegardes des bases de données d'Open-Prod.

Sauvegarde ponctuelle via le navigateur

En complément des sauvegardes système des VM et / ou serveurs hébergeant la solution Open-Prod, il est souhaitable de réaliser des sauvegardes des bases de données de manière ponctuelle (lors d'une clôture comptable, injection de données, mise à jour par exemple) ou périodique. 
Les sauvegardes peuvent être réalisées de deux manières :

Naturellement, lors de ces sauvegardes, l'idéal reste que les utilisateurs ne soient pas connectés afin de garantir une intégrité des données maximum.

Pour réaliser une sauvegarde manuelle :

  1. Se connecter sur le Portail Open-Prod.
  2. Cliquer sur "Gestion des bases de données" depuis l'écran de connexion.

image.png

3. Localiser la base de données que vous désirez sauvegarder, puis cliquer sur « Backup »


image.png

4. Saisir le mot de passe administrateur puis le type de sauvegarde souhaitée :


image.png

5. Enfin, cliquer sur "Backup" pour lancer la production de la sauvegarde sur le serveur. Celle-ci sera automatiquement téléchargée sur le poste client.

L'option "zip (includes filestore)" produira une sauvegarde contenant l’ensemble de la GED incluse dans l’ERP tandis que l'option "pg_dump custom format (without filestore)" réalisera un simple dump de la base données. C'est à dire une sauvegarde SANS la GED d'Open-Prod.

Note importante : seules les sauvegardes type "zip (includes filestore)" permettent de restaurer l'entièreté de la GED. Cela implique que la restauration des sauvegardes type "dump" ne permettent pas de profiter de l'ensemble des fonctionnalités après restauration. Attention, ce type de sauvegarde peut nécessiter un espace disque important.


Sauvegarde via commandes

En complément des sauvegardes système des VM et / ou serveurs hébergeant la solution Open-Prod, il est souhaitable de réaliser des sauvegardes des bases de données de manière ponctuelle (lors d'une clôture comptable, injection de données, mise à jour par exemple) ou périodique. 
Les sauvegardes peuvent être réalisées de deux manières :

Naturellement, lors de ces sauvegardes, l'idéal reste que les utilisateurs ne soient pas connectés afin de garantir une intégrité des données maximum.

 

Mise en place d'une sauvegarde automatique :

Au travers de myhelp, myfab propose des fonctions permettant de réaliser des sauvegardes ponctuelles ou automatisées des bases de données d'Open-Prod.

Les sauvegardes effectuées au travers des scripts myhelp produisent uniquement des sauvegardes de type "dump". Les données de la GED ne sont ainsi pas incluses dans la sauvegarde. Une restauration d'une telle base ne permet donc pas d'assurer le maintien de toutes les fonctionnalités de l'ERP.

1. Réalisation d'une sauvegarde ponctuelle via scripts myhelp

Sur l’utilisateur ubuntu, les commandes sql-backup et sql-auto-backup sont accessibles directement en mode commande au travers des scripts myhelp

Depuis votre terminal, taper sql-backup

Tapez 0 pour sauvegarder votre ou vos bases Open-Prod, 1 pour votre base jasper.

Sélectionnez la base que vous désirez sauvegarder, puis indiquer le répertoire ou le dump sera placé.

2. Mise en place d'une sauvegarde automatique

Depuis votre terminal, tapez sql-auto-backup suivi de « Entrée » :

Renseigner les informations suivantes :

Note importante : l’espace utile nécessaire à la réalisation d’une telle programmation est à étudier en amont, en fonction de la volumétrie des bases, du nombre de bases, et du nombre de jours de rétention souhaité : il peut être souhaitable de réaliser cette sauvegarde sur un autre volume, externe au serveur de gestion de base de données.

Une fois la programmation réalisée, l’utilisateur peut revenir sur celle-ci afin de l’ajuster (modification de l’heure de lancement, jour de la semaine, etc..) en tapant la commande suivante : 

sudo -u root crontab -e

La machine affichera alors la programmation du « cron » système de l’utilisateur root.

Note importante : la modification d’un paramétrage de sauvegarde automatique doit être réalisée par un utilisateur expert dans la notion de cron linux et ayant une bonne maitrise d’un éditeur de texte tel que vim ou nano. Naturellement, si la programmation de cette sauvegarde est modifiée d’une quelconque manière, il convient de vérifier, au cours des jours suivant la modification que les sauvegardes réalisées sont bien fonctionnelles et en adéquation avec les attentes initiales.

Sauvegarde Externe

En complément des sauvegardes système des VM et / ou serveurs hébergeant la solution Open-Prod, il est souhaitable de réaliser des sauvegardes des bases de données de manière ponctuelle (lors d'une clôture comptable, injection de données, mise à jour par exemple) ou périodique,

Il peut être souhaitable dans certains contextes, de réaliser des sauvegardes dites « externes » : les sauvegardes seront réalisées à l’initiative d’un serveur (ou d’un poste client) local ou distant, manuellement ou à la fréquence souhaitée par l’Administrateur de sauvegardes

Note importante : Attention ! Les batch (ou lignes de commande) sont fournis à titre d’exemple : ils sont à adapter et à tester en fonction du contexte réseau et du résultat attendu. Ils doivent être mis en place par un utilisateur maitrisant PostgreSQL et les flux réseau associés. En fonction des protocoles de sécurité mis en place, les identifiants et mot de passes peuvent circuler en « clair » sur le réseau !

1.               Réalisation d’une sauvegarde distante via pg_dump (via sh/cmd)

Descriptif de la commande : pg_dump est une commande permettant de réaliser une sauvegarde d’une base de données PostgreSQL locale ou distante.

Documentation en ligne : https://docs.postgresql.fr/15/app-pgdump.html

Tant sous Windows que sous linux, il est possible de réaliser une sauvegarde distante via la commande pg_dump :

Syntaxe : pg_dump --no-owner --format=c -h <IP_SERVER> -p <PORT> -d <BDD> -U <USER_POSTGRESQL>

Exemple d’utilisation de la commande pg_dump sous windows.

image.png

Naturellement, sous Windows, il conviendra de télécharger un PostgreSQL et de n’installer, par exemple que les outils en ligne de commande :

image.png

Une image contenant texte, Appareils électroniques, capture d’écran, affichage

Description générée automatiquement

Sur un serveur linux, les paquets nécessaires à la cette opération seront à installer sur le serveur distant :

image.png

Note importante : Pensez toujours à télécharger une version des commandes PostgreSQL (Linux ou Windows) compatible et au plus proche de la version présente sur l’environnement Open-Prod !

Pour Windows, rendez-vous sur l’url : https://www.postgresql.org/download/windows/

Note : les commande pg_restore, createdb et dropdb sont aussi disponibles sur les différents OS. Naturellement l’utilisation de ces commandes spécifiques nécessite une bonne connaissance de PostgreSQL.

Information complémentaire : Toutes les commandes précitées nécessitent une authentification sur le serveur PostgreSQL distant. Rendez-vous sur l’url : https://www.postgresql.org/docs/12/libpq-pgpass.html afin d’automatiser la connexion à partir du poste client.


2.               Réalisation d’une sauvegarde distante via curl (via Open-Prod)

Descriptif de la commande : curl est une commande présente sur de nombreux système Windows et Linux. Cette commande permet d’exécuter des scripts ou des connexion web en ligne de commande. Elle permet, entre autres, de transférer des fichiers.

Pour plus d’information, rendez-vous sur : https://curl.se/docs/tooldocs.html

Syntaxe : curl -X POST -F master_pwd=<MASTER_PASSWORD> -F name=<DATABASE> -F backup_format=<BACKUP_FORMAT> -o <NOM_DE_FICHIER> http://<ADRESSE_IP>:8068/web/database/backup

@ECHO OFF

SET ADMIN_PASSWORD_DEST=M0t2PassE

SET SERVEUR_DEST=192.168.40.17

SET DATABASE_DEST=REFERENCE_MYFAB

SET BACKUP_FORMAT=zip

SET FILE_DEST=REFERENCE_MYFAB_BCK_WIN_CURL.zip

curl -X POST -F master_pwd=%ADMIN_PASSWORD_DEST% -F name=%DATABASE_DEST% -F backup_format=%BACKUP_FORMAT% -o %FILE_DEST% http://%SERVEUR_DEST%:8068/web/database/backup

 

Note : la variable ADMIN_PASSWORD_DEST est ici le mot de passe Admin de manipulation de bases de données sous Open-Prod. Naturellement l’url de sauvegarde doit embarquer le protocole (ici http) et le port (8068). Le type de sauvegarde (dump ou zip) est à adapter en fonction de la volumétrie et du stockage de la GED d’Open-Prod.

 

image.png

 

Rappel : la mise en place d’un paramétrage de sauvegarde à distance doit être réalisée par un utilisateur connaissant bien la notion des flux réseau. Naturellement, un test de la validité du fichier .zip (donc la sauvegarde) est à réaliser en aval de ladite sauvegarde de manière périodique, par tentative de restauration sur le serveur, par exemple.