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 : Publications » [Créer une extension Postgres en Rust] nouvelle série d'articles » 01/10/2024 18:25:24

Mes commentaires:


Dans l'exemple cité, la manipulation de chaînes de caractères est  effectivement bien plus facile qu'en C. Mais il faut savoir qu'une chaîne en Rust est un vrai type de données qui utilise Unicode et peut se révéler plus difficile à manipuler que l'équivalent en C qui est seulement en ASCII par défaut. Par exemple, essayez de mettre en majuscule le premier caractère d'une chaîne String.


Comme pour l'exécutable "Hello World", l'extension "Hello World" en mode debug est particulièrement volumineuse:

$ ll target/debug
total 86224
drwxrwxr-x. 32 pierre pierre     4096 Sep 28 15:31 build
drwxrwxr-x.  2 pierre pierre    20480 Sep 28 15:36 deps
drwxrwxr-x.  2 pierre pierre        6 Sep 28 15:31 examples
drwxrwxr-x.  4 pierre pierre       71 Sep 28 15:31 incremental
-rw-rw-r--.  1 pierre pierre       75 Sep 28 15:31 libworld.d
-rw-rw-r--.  2 pierre pierre   995514 Sep 28 15:33 libworld.rlib
-rwxrwxr-x.  2 pierre pierre 42444168 Sep 28 15:33 libworld.so
-rwxrwxr-x.  2 pierre pierre 44807552 Sep 28 15:36 pgrx_embed_world
-rw-rw-r--.  1 pierre pierre      137 Sep 28 15:36 pgrx_embed_world.d
$ ll target/release
total 628
drwxrwxr-x. 38 pierre pierre   4096 Sep 28 15:35 build
drwxrwxr-x.  2 pierre pierre  20480 Sep 28 15:36 deps
drwxrwxr-x.  2 pierre pierre      6 Sep 28 15:35 examples
drwxrwxr-x.  2 pierre pierre      6 Sep 28 15:35 incremental
-rw-rw-r--.  1 pierre pierre     77 Sep 28 15:36 libworld.d
-rw-rw-r--.  2 pierre pierre 113690 Sep 28 15:36 libworld.rlib
-rwxrwxr-x.  2 pierre pierre 493264 Sep 28 15:36 libworld.so
$ 

#2 Re : Publications » [Linux Pratique] Sauvegarder une instance PostgreSQL » 17/09/2024 11:26:38

Bonjour Sébastien,

En effet pgbackrest ne peut restaurer qu'une seule base mais en écrasant les autres bases qui sont de fait inutilisables.


Cela ne permet donc pas de restaurer une seule base sans impact sur les autres bases. Est-ce qu'il y a un logiciel qui sait faire ça ?

#3 Re : Publications » [Linux Pratique] Sauvegarder une instance PostgreSQL » 16/09/2024 22:31:22

Dommage que cet article ne mentionne pas que le fait d'utiliser un outil comme pgbackrest ne sait restaurer que toutes les bases de l'instance.


Dans l'exemple mentionné pgbackrest va restaurer les 3 bases applicatives b1, b2 et b3 ainsi que les bases "système" postgresql, template0 et template1 alors qu'idéalement on ne voudrait que restaurer la base b2.


Ceci n'est ni  une limitation de pgbackrest (ni de barman d'ailleurs - même s'il n'est pas ici utilisé -) mais une limitation de PostgreSQL qui ne prend ni en compte la sauvegarde physique d'une base individuelle ni la restauration physique d'une base individuelle.


Cet article pourrait être complété en montrant :
- comment restaurer l'instance source dans une instance temporaire avec pgbackrest
- et ensuite comment utiliser pg_dump/pg_restore pour uniquement restaurer la base b2 de l'instance temporaire vers l'instance source.

#4 Re : Général » psql reconnais ou pas le mot de passe..... (PG16 Windows) » 15/01/2024 19:48:31

Le compte d'administration créé par défaut est postgres et non postgresql.


Vous avez peut-être créé un compte postgresql pour lequel il faut donner le mot de passe d'après pg_hba.conf ?


Exemple avec la version 16.1 sur Linux (ça doit être la même chose sur Windows):

$ psql -U postgres
psql (16.1)
Type "help" for help.

postgres=# \du
                             List of roles
 Role name |                         Attributes                         
-----------+------------------------------------------------------------
 postgres  | Superuser, Create role, Create DB, Replication, Bypass RLS

#5 Re : Optimisation » Index BRIN » 28/08/2023 20:29:22

D'après la discussion https://www.postgresql.org/message-id/1 … .pgh.pa.us, il s'agit d'une limite connue des index BRIIN.
Peut-être qu'il s'agit plus d'une limite du "query planner" ?

#7 Re : Site PostgreSQL.fr » la page d'accueil » 29/08/2022 18:26:37

Bonjour,

Aujourd'hui je vois aussi:

Cette page n'existe plus

Vous avez suivi un lien vers une page qui n'existe plus. Vous pouvez afficher la liste des anciennes revisions pour voir quand et pourquoi la page a été supprimée, pour accéder à ses anciennes révisions ou pour la restaurer.

Et l'historique de la page en question dit que la page a été supprimée le 29 juillet:

Anciennes révisions

Voici les anciennes révisions de la page en cours. Pour les comparer, sélectionnez-les avec les cases à options. Pour revenir à une ancienne révision, affichez-la en cliquant sur son nom, puis cliquez sur le bouton « Modifier cette page » et enregistrez-la.

    2022/07/29 10:58 accueil – supprimée aquaslotgacor -2.6 KB (Version actuelle)
    2022/07/25 06:44 Différences avec la version actuelle accueil – ancienne révision (2022/06/17 11:04) restaurée anthonyn +2.1 KB

J'ai restauré la version du 25.07.

#8 Re : Optimisation » Comment/Quand optimiser ses requêtes ? » 30/09/2021 16:27:52

En général on optimise une requête lorsque quelqu'un remonte un problème de performance dont l'analyse désigne la requête en question comme étant trop lente.


Pour aller plus loin:
Guide de formation Dalibo PG Performances

#10 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.

#11 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.

#12 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.

#13 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.

#14 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.

#15 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.

#16 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.

#17 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.

#18 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.

#20 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é.

#21 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.

#22 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é.

#23 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.

#24 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 ?

#25 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.

Pied de page des forums

Propulsé par FluxBB