PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 Re : Installation » répertoire data » 20/07/2020 19:40:23

Oui, c'est une bonne pratique de séparer les exécutables PostgreSQL et les données PostgreSQL (PGDATA). Et ce serait encore mieux de séparer les journaux de transaction (dossier pg_wal dans PGDATA)  des autres données si possible.

Il y a des règles de nommage par défaut utilisées par les programmes d'installation pour PGDATA:

/var/lib/pgsql/data

sous Linux par exemple mais ces règles  doivent être adaptées si vous avez plusieurs plusieurs instances sur la même machine.

#2 Re : Sécurité » SSL - besoin d'explications » 29/06/2020 12:56:30

1. La différence entre cert et md5: cert va utiliser le certificat - qui doit être stocké côté client - pour ne pas demande de mot de passe alors que md5 va demander et vérifier le mot de passe enregistré dans la base.

2. Je ne sais pas.

#3 Re : Sécurité » SSL - besoin d'explications » 29/06/2020 09:06:33

Dans pg_hba.conf vous pouvez ajouter la méthode CERT:

hostssl db            usr            192.168.0.1/16         cert 

Demander à PostgreSQL de prendre en compte cette modification avec:

pg_ctl reload

Et vérifier dans le log de PostgreSQL qu'il n'y a pas d'erreur (car s'il y a une erreur dans pg_hba.conf, pg_ctl ne dit rien):

2020-06-29 09:00:20.313 CEST [11349] LOG:  received SIGHUP, reloading configuration files

S'il y a une erreur vous avez des messages qui signifient que le modification de pg_hba.conf n'a pas été prise en compte:

2020-06-29 09:03:31.821 CEST [11349] LOG:  received SIGHUP, reloading configuration files
2020-06-29 09:03:31.822 CEST [11349] LOG:  invalid authentication method "clientcert=verify-ca"
2020-06-29 09:03:31.822 CEST [11349] CONTEXT:  line 83 of configuration file "/var/lib/pgsql/12/data/pg_hba.conf"
2020-06-29 09:03:31.822 CEST [11349] LOG:  pg_hba.conf was not reloaded

Dans ce cas PostgreSQL continue de fonctionner mais avec l'ancienne version de pg_hba.conf.


Si vos tests ne fonctionnent pas, précisez quels sont les certificats que vous avez installés côté client ainsi que les message d'erreur à la connexion (de préférence avec psql) et les messages d'erreur correspondants dans le log de PostgreSQL.

#4 Re : PL/pgSQL » ORDER BY - Problème d'ordre » 08/06/2020 20:29:23

Avec la collation fr-x-icu dans PostgreSQL 12, j'ai:

select x from t order by x collate "fr-x-icu";
   x    
--------
 dé
 dé a
 dé m
 dé z
 dép
 dép a
 dép m
 dép z
 départ
 dépbrt
 dépzrt
(11 rows)

Résultats identiques dans les versions 10 et 11.


A priori pas possible en version 9.5 ou 9.6.

#5 Re : Général » est-il possible de récupérer une base de données non sauvegardées ? » 08/06/2020 20:02:46

Oui c'est possible. Il y a au moins 2 méthodes: soit réinstaller PG mais en prenant garde de ne  P A S  relancer un initdb qui pourrait écraser le répertoire PGDATA  par défaut, soit copier le dossier PGDATA sur une autre machine dans un nouveau dossier où PG est installé.

Il faut en savoir plus, quelle est la version de PG utilisée,  quel est le système cible (version Windows, distribution Linux précise), quel est l'installateur précis qui a été utilisé (yum, rpm, apt ou installateur graphique).

La première chose à faire avant tout c'est de sauvegarder PGDATA dans l'état actuel.

#6 Re : Site PostgreSQL.fr » Install pgadmin 4 on Ubuntu 18 » 04/06/2020 07:33:56

This is a French speaking only forum: if you cannot use French please use another English speaking forum such as Stack Overflow for example.

#7 Re : Général » Mise à jour de la définition d'une vue materialisée » 20/05/2020 09:17:32

Il faudrait donner un exemple précis avec le code SQL de la vue matérialisée et de ses dépendances.

Mais je ne connais pas de commande SQL dans PostgreSQL qui va dans ce sens: la commande ALTER MATERIALIZED VIEW ne permet essentiellement que de renommer des colonnes d'après: https://docs.postgresql.fr/12/sql-alter … dview.html.

#8 Re : pgAdmin4 » Fonction to_char ne convertit pas integer en caractères » 11/05/2020 21:50:09

Voici une explication possible:

                    Table "public.t"
 Column |     Type     | Collation | Nullable | Default 
--------+--------------+-----------+----------+---------
 cpa    | character(8) |           |          | 
 cpb    | integer      |           |          | 

insert into t values('12345', 12345);
INSERT 0 1
select cpa, cpb, length(cpa) as l_cpa, length(to_char(cpb,'99999')) as l_cpb, length(trim(to_char(cpb,'99999'))) as lt_cpb from t;
   cpa    |  cpb  | l_cpa | l_cpb | lt_cpb 
----------+-------+-------+-------+--------
 12345    | 12345 |     5 |     6 |      5
(1 row)

select cpa = to_char(cpb,'99999') from t;
 ?column? 
----------
 f
(1 row)

select cpa = trim(to_char(cpb,'99999')) from t;
 ?column? 
----------
 t
(1 row)

La conversion avec TO_CHAR réserve un caractère pour le signe (un espace si le nombre est positif) et le test d'égalité retourne faux.
L'utilisation de TRIM supprime ce caractère et le test d'égalité retourne vrai.

#9 Re : Général » Eviter un ROLLBACK lors du chargement des données rejetées via COPY » 11/05/2020 21:45:19

Sur la page GitHub, certains semblent être arrivés à l'installer sur Windows soit directement (mais avec difficultés) soit en installant le package apt dans le système Linux de Windows:
https://github.com/dimitri/pgloader/issues/652

Sinon il existe toujours la possibilité d'avoir une machine virtuelle Linux sur Windows et d'y installer pgloader.

#11 Re : Installation » Mon serveur n'est pas détecté » 11/05/2020 20:11:58

Ce fichier me semble correct. Si le service est bien démarré avec ce fichier au bon endroit, il devrait y avoir un log généré dans le répertoire pg_log.
Vérifiez qu'il n'y a pas d'erreur dans le journal des événements Windows au moment du démarrage du service.

Réinstaller PostgreSQL est risqué car vous risquez de perdre vos données dans PGDATA: sans sauvegarde c'est risqué.

#12 Re : Général » pgBackRest » 08/05/2020 10:16:02

C'est probablement une terminologie Oracle où l'outil de sauvegarde RMAN permet aussi de définir une période de rétention des sauvegardes. Si la sauvegarde a été supprimée du référentiel courant mais a été stockée auparavant ailleurs, elle peut être être réintégrée dans RMAN avec la commande CATALOG ce qui va permettre de la réutiliser par la suite avec la commande RMAN. Dans RMAN le catalogue est le référentiel qui enregistre les sauvegardes: il est stocké dans la base cible dans un format interne spécifique ou peut être stocké dans une vraie base séparée.

#13 Re : Installation » Mon serveur n'est pas détecté » 05/05/2020 08:39:17

Les fichiers pga_hba.conf et postgresql.conf sont livrés avec beaucoup de commentaires: essayez de copier ces fichiers dans

c:\Program Files\PostgreSQL\9.0\data

, de redémarrer le service PostgreSQL et de vérifier s'il y a log généré.

#14 Re : Installation » Mon serveur n'est pas détecté » 04/05/2020 13:13:35

Je pense que c'est  plus probablement un problème de droits d'accès dans Windows: essayez de lancer le service avec un compte qui a des droits "administrateur" idéalement il faudrait utiliser celui qui a installé PostgreSQL.

#15 Re : Installation » Mon serveur n'est pas détecté » 04/05/2020 12:47:38

Même si la commande "net start" ne donne rien, le service Windows existe d'après la commande "sc query".

Les fichiers pg_hba.conf et postgresql.conf doivent impérativement être dans dans votre cas dans "PGDATA" càd dans

c:\Program Files\PostgreSQL\9.0\data

Essayez de déplacer ces 2 fichiers à cet endroit et de démarrer le service Windows de l'instance PG avec:

sc start postgresql-x64-9.0

Est-ce qu'il y  a des erreurs ?
Est-ce qu'il y a maintenant un log dans pg_log et si oui quel est son contenu ?

#16 Re : Installation » Mon serveur n'est pas détecté » 03/05/2020 12:57:59

Pour vérifier que le service Windows de l'instance PostgreSQL est bien démarré, essayez la commande suivante (ici j'ai  la version 9.3 installée sur Windows 2016):

> net start | findstr Post
   postgresql-x64-9.3 - PostgreSQL Server 9.3

Vous pouvez aussi tester avec la commamde sc query:

>sc query postgresql-x64-9.3

SERVICE_NAME: postgresql-x64-9.3
        TYPE               : 10  WIN32_OWN_PROCESS
        STATE              : 4  RUNNING
                                (STOPPABLE, PAUSABLE, ACCEPTS_SHUTDOWN)
        WIN32_EXIT_CODE    : 0  (0x0)
        SERVICE_EXIT_CODE  : 0  (0x0)
        CHECKPOINT         : 0x0
        WAIT_HINT          : 0x0

Dans votre cas, la commande doit être:

sc query postgresql-x64-9.0

Ceci suppose le service Windows a le nom par défaut.


Ensuite il faut vérifier le log de l''instance qui doit se trouver par défaut dans

c:\Program Files\PostgreSQL\9.0\data\pg_log

Quel est son contenu ?
Est-ce qu'il y a des erreurs ?


NB: le fait que d'être un abonné Free ne doit rien changer (à condition que vous parlez bien d'une installation locale sur votre machine Windws 10 et non du service PostgreSQL gratuit que Free fournit mais qui est disponible uniquement par l' interface web http://sql.free.fr/phpPgAdmin.

#17 Re : Migration » Database postgres v9.3 ; installée v12 ; pb migration des données » 03/05/2020 09:58:27

Pour installer une ancienne (ou une nouvelle) version de Postgres sur Linux, il est toujours possible de l'installer à partir du code source: https://docs.postgresql.fr/9.3/installation.html.
Sinon il est possible d'utiliser l'exécutable pg_dump 12 pour exporter la base source en version 9.3 et l'exécutable pg_restore 12 pour importer  dans la base cible en version 12.


Exemple pour passer de 9.3 à 11: il faut bien utiliser les exécutables pg_dump et pg_restore de la version 11.


Je trouve la formulation de la documentation officielle assez ambigüe et qu'elle manque vraiment d'exemple sur ce point spécifique de changement de version:


Parce que pg_dump est utilisé pour transférer des données vers des nouvelles versions de PostgreSQL™, la sortie de pg_dump devra pouvoir se charger dans les versions du serveur PostgreSQL™ plus récentes que la version de pg_dump. pg_dump peut aussi extraire des données de serveurs PostgreSQL™ plus anciens que sa propre version. (À l'heure actuelle, les versions de serveurs supportées vont jusqu'à la 8.0.) Toutefois, pg_dump ne peut pas réaliser d'extraction de serveurs PostgreSQL™ plus récents que sa propre version majeure ; il refusera même d'essayer, plutôt que de risquer de fournir une extraction invalide. Par ailleurs, il n'est pas garanti que la sortie de pg_dump puisse être chargée dans un serveur d'une version majeure plus ancienne  -- pas même si l'extraction a été faite à partir d'un serveur dans cette version. Charger un fichier d'extraction dans un serveur de version plus ancienne pourra requérir une édition manuelle du fichier pour supprimer les syntaxe incomprises de l'ancien serveur. L'utilisation de l'option --quote-all-identifiers est recommendée lors de l'utilisation avec des versions différentes, car cela permet d'empêcher la venue de problèmes provenant de listes de mots clés dans différentes versions de PostgreSQL™.

#18 Re : Général » Conversion d'une chaine numérique vers un type oid » 29/04/2020 08:14:46

Vous pouvez essayer:

# select to_number('123456','999999')::int::oid;
 to_number 
-----------
    123456
(1 row)

#19 Re : Réplication » Replication de base de données Postgres entre maitre et esclave » 22/04/2020 18:57:22

Il y a 2 questions dans votre message:
- comment créer un serveur PostgreSQL répliqué sous Windows: c'est censé fonctionner comme sur Linux à part les spécificités Windows (syntaxe des noms de fichiers, service Windows pour l'instance/cluster)
- comment synchroniser les documents numérisés en dehors de la base: je ne sais pas si PostgreSQL sait faire ? En général on utilise des outils simples comme robocopy sur Windows ou rsync sur Linux ou des outils plus complexes comme DFS sur Windows ou DRBD sur Linux.
Que voulez-vous savoir en détail  ?

#20 Re : Migration » Migration PostreSQL 10.5 vers 11.7 » 16/04/2020 13:17:13

Je ne sais pas précisément quel type de compte il faut utiliser pour le service PostgreSQL et les droits précis qu'il faut lui donner: je n'ai pas trouvé d'information précise à ce niveau.
La documentation la plus complète que j'ai trouvée est la suivante pour l'installlateur EntrepriseDB et la version 10:
https://get.enterprisedb.com/docs/Postg … de_v10.pdf

Mais j'ai utilisé cet installateur et contrairement à ce qui est indiqué il n'a pas créé de compte postgres pour le service Windows.

#21 Re : Migration » Migration PostreSQL 10.5 vers 11.7 » 16/04/2020 11:54:30

Bonjour,

Essayez de donner tous les droits à l'utilisateur 'NETWORK SERVICE' sur le répertoire DATA.

#22 Re : Migration » Migration PostreSQL 10.5 vers 11.7 » 15/04/2020 22:12:51

Permission denied: c'est un problème de droits d'accès.

Il faut vérifier que le compte du service Windows PostgreSQL a bien les droits de lectue et d'écriture dans PGDATA.

Le service Windows doit s'appeller postgresql-x64-11. PGDATA est par défaut C:\Program Files\PostgreSQL\11\data.

J'ai une installation locale de PG 10 sur Windows 2016 (mais sans Active Directory). J'ai utilisé le compte administrateur local et le service Windows s'exécute avec le compte "Network Service".

#23 Re : Général » Mise à jour BD postgres depuis QGIS » 10/04/2020 14:07:03

Pour vous aider, il  faut avoir la description complète des tables concernées, la correspondance entre les colonnes et un exemple de MAJ: quand est-ce qu'il faut la faire et quand est-ce qu'il ne faut pas la faire.

#24 Re : Général » Mise à jour BD postgres depuis QGIS » 10/04/2020 13:13:11

Est-ce que cette requête donne le résultat demandé ?

insert into test_importb 
 select test_import.* 
 from test_import, test_importb 
 where test_importb.id_metier_<>test_import.id_metier_;

#25 Re : Général » Haute disponibilité , quelle solution choisir ? » 06/04/2020 18:18:10

D'après le support de formation Dalibo (les outils de réplication):

L’outil repmgr3 de 2ndQuadrant permet la gestion de la haute disponibilité avec notamment la gestion des opérations de clonage, de promotion d’une instance en primaire et lad émotion d’une instance.L’outil repmgr peut également être en charge de la promotion automatique du nœud secondaire en cas de panne du nœud primaire, cela implique la mise en place d’un serveur supplémentaire par cluster HA (paire primaire/secondaire) appelé témoin (witness). Cette machine héberge une instance PostgreSQL dédiée au processus daemon repmgrd, processus responsable d’effectuer les contrôles d’accès réguliers à l’instance primaire et de promouvoir le nœud secondaire lorsqu’une panne est détectée et confirmée suite à plusieurs tentatives échouées consécutives.Afin de faciliter la bascule du trafic sur l’instance secondaire en cas de panne du primaire,l’utilisation d’une adresse IP virtuelle (VIP) est requise. Les applications clientes (hors administration) doivent se connecter directement à la VIP.


Ce concept de  témoin est un concept général souvent utilisé dans les systèmes de haute-disponibilité.

Pied de page des forums

Propulsé par FluxBB