Restaurer la base SQL Postgre - Procédure ?

RQU
Messages : 2
Enregistré le : mar. oct. 15, 2019 8:40 am

mer. oct. 16, 2019 7:54 am

Bonjour,

J'ai pu tester une restauration de la base OpenConcerto lors de la mise en place d'un serveur de secours (backup).
(restauration faite à partir d'un sauvegarde effectuée de la façon suivante à partir d'une machine source :
/usr/bin/pg_dump --host 192.168.0.35 --port 5432 --username "openconcerto" --no-password --format custom --blobs --verbose --file "${HOME}/Documents/Save_db_OpenConcerto/BDD_OpenConcerto_${DATEJ}.backup" "OpenConcerto")

J'ai tout d'abord installé OpenConcerto sur le serveur cible selon la procédure indiquée par ILM.

5 schémas sont présents en base :
-Common
-Default
-public
-OpenConcerto42 (175 séquences, 180 tables)
-OpenConcerto48 (174 séquences, 178 tables)

Ces deux schémas OpenConcerto42 et OpenConcerto48 sont-il nécessaires au fonctionnement de l'application ?
Pourquoi ces différences au niveau du nombre de tables et de séquences.

Avant l'injection des données par restauration dans le serveur de secours, il existe certaines différences entre les deux environnements :

Serveur source :

OS : Ubuntu 18.04.3 LTS
postgres : 9.5.14
OpenConcerto : 1.6.2

Serveur cible :

OS : Ubuntu 18.04.3 LTS server
postgres : 10.10
OpenConcerto : 1.6.3

Après plusieurs tentatives infructueuse de restauration des données sur cette base, j'opte finalement pour ne pas créer la base OpenConcerto à partir du fichier OpenConcerto-1.6.3.sql mais à partir de ma sauvegarde.

Je supprime donc la base existante, puis, avec le user postgres

pg_restore -U postgres -d postgres -C -v BDD_OpenConcerto_20191014.backup

La restauration se fait sans aucune erreur.

J'effectue ensuite une mise à niveau de la base via l'interface de configuration d'OpenConcerto.

Problème : lorsque je lance l'application OpenConcerto, je ne retrouve pas mes données ! :shock:
Après analyse, l'application semble "pointer" sur le schéma OpenConcerto42 alors que mes données à jour sont dans le schéma OpenConcerto49.
Ce schéma n'est pas créé par OpenConcerto-1.6.3.sql. Comment est-il présent dans ma sauvegarde ?

181 tables et 176 séquences dans le schéma OpenConcerto42
180 tables et 175 séquences dans le schéma OpenConcerto49

Je tente de remplacer le schéma OpenConcerto49 par OpenConcerto42
- suppression d'OpenConcerto42 (DROP SCHEMA)
- renommage de OpenConcerto49 en OpenConcerto42 (ALTER SCHEMA)

Enfin, je réitère une mise à niveau de la base.
Malgré cela, je n'ai toujours que 180 tables et 175 séquences dans mon schéma. :?

Lorsque je lance le produit, je retrouve bien mes données (en regardant dans la table CLIENT par exemple). :D

Cette procédure semble fonctionner mais ne me semble pas très académique.

Quelqu'un a-t-il déjà eu à effectuer une restauration de sa base ? A-t-il rencontré les mêmes difficultés ?
Comment procéder autrement ?

Merci pour vos commentaires.
JacquesF
Messages : 121
Enregistré le : jeu. mars 14, 2019 10:44 am

mer. oct. 16, 2019 12:50 pm

Bonjour,

Dans la base de données OpenConcerto (PostgreSQL), il y a un schéma OpenConcertoXX par sociétés créées.
Le 42 est la société exemple ILM informatique, le 48 le prochain créé (en version 1.6.2) et ainsi de suite.
Chaque suppression/recréation de société va incrémenter le numéro du schéma.
Le lien est fait via la table Common.SOCIETE_COMMON.
Il n'est donc pas nécessaire de modifier le schéma final à mon sens.
Le nombre de tables doit varier selon la personnalisation de la société et des besoins dans les options du logiciel.
Ceci n'est qu'une déduction, pas une certitude.

Jacques
OpenConcerto v1.7.0
Configuration multiposte - Serveur Postgresql v11.11 sous Linux (Debian 10.9)
Clients Linux (Mageia & Kubuntu) & Windows (7 Pro et 10 Pro)
RQU
Messages : 2
Enregistré le : mar. oct. 15, 2019 8:40 am

mer. oct. 16, 2019 2:43 pm

Merci pour vos infos, Jacques.
Cela m'a permis de voir une incohérence dans les informations que j'ai en base suite à l'application de ma procédure, justement liée à la table que vous avez citée.
Du coup, je suis reparti de zéro. J'ai régénéré ma base avec ma sauvegarde et je pense avoir identifié le fichier qui permet de pointer vers le bon schéma (la bonne société) à la connexion.
Il s'agit du fichier .config/OpenConcerto/dataDependent/"n_'postgresql"/"n_'www.xxx.yyy.zzz.'Cpppp"/"n_'OpenConcerto"/"n_'Common"/User.properties qui se situe dans le $HOME du user linux qui lance l'appication OpenConcerto.

avec www.xxx.yyy.zzz : l'adresse IP du serveur hébergeant la base postgres et pppp, le numéro de port de connexion à la base.

Dans le fichier User.properties, il existe un champs lastSociete=nn
avec nn le numéro de la société sur laquelle pointe le user à la connexion.

Roger
Répondre