Après des années d’absence il est bon de revenir vers vous et continuer l’aventure autour des bases de données
Merci déjà pour vos messages cela me touche énormément .
J’ai été appelé en astreinte pour une base de données postgresql 9.6.11 .
impossible de se connecter à l’instance.
Analyse :
nous avons bien les process présent
root@serveur1:/lib/x86_64-linux-gnu# ps -ef | grep post
postgres 1647 1 0 09:52 ? 00:00:02 /lib/systemd/systemd –user
postgres 1653 1647 0 09:52 ? 00:00:00 (sd-pam)
postgres 1818 1 0 09:52 ? 00:00:00 /opt/postgresql/postgresql-9.6.11/bin/postgres -D /appli/postgres/Instance1/pgdata/data
root 1875 1 0 09:52 ? 00:00:00 /usr/lib/postfix/sbin/master -w
postfix 1878 1875 0 09:52 ? 00:00:00 qmgr -l -t unix -u
postgres 1880 1818 0 09:52 ? 00:00:00 postgres: checkpointer process
postgres 1881 1818 0 09:52 ? 00:00:00 postgres: writer process
postgres 1882 1818 0 09:52 ? 00:00:00 postgres: wal writer process
postgres 1883 1818 0 09:52 ? 00:00:00 postgres: autovacuum launcher process
postgres 1884 1818 0 09:52 ? 00:00:00 postgres: archiver process last was 00000001000001E700000010
postgres 1885 1818 0 09:52 ? 00:00:00 postgres: stats collector process
root 8257 21297 0 11:27 pts/1 00:00:00 su – postgres
postgres 8258 8257 0 11:27 pts/1 00:00:00 -bash
postfix 11083 1875 0 11:32 ? 00:00:00 pickup -l -t unix -u -c
postgres 14438 1818 0 10:18 ? 00:00:00 postgres: mmx Tik [local] idle
postfix 15870 1875 0 11:47 ? 00:00:00 cleanup -z -t unix -u -c
postfix 15871 1875 0 11:47 ? 00:00:00 trivial-rewrite -n rewrite -t unix -u -c
postfix 15872 1875 0 11:47 ? 00:00:00 smtp -t unix -u
root 16156 28793 0 11:48 pts/2 00:00:00 /bin/grep –color=auto post
root@serveur1:/lib/x86_64-linux-gnu#
Tentative de connexion :
psql
psql: error while loading shared libraries: libreadline.so.7: cannot open shared object file: No such file or directory
recherche de la libreadline.so.7
find /opt/postgresql -name “libreadline.so.7”
Pas de fichier présent
Interprétation :
il y a une modification ou une suppression de ce fichier .
recherche des traces de suppression dans l’historique de connexion : KO
recherche du package debian
root@serveur1:~# ldconfig -p | grep readline
libreadline.so.8 (libc6,x86-64) => /lib/x86_64-linux-gnu/libreadline.so.8
libreadline.so (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libreadline.so
je retrouve bien une bibliothèque mais en version 8 .
Solution :
1) réinstaller les sources 9.6.11 ou le package 7 ( en production pas possible la nuit)
ou le package
2) créé un lien symbolique sur la version 8
la solution 2 est la plus simple à mettre en place rapidement
D’abord quel est le rôle de cette bibliothèque ?
Nous avons la réponse dans la documentation officiel de postgresql :
https://docs.postgresql.fr/13/install-requirements.html
je cite ”
Elle permet à psql (l’interpréteur de ligne de commandes SQL de PostgreSQL) de se souvenir de chaque commande saisie,
et permet d’utiliser les flèches du clavier pour rappeler et éditer les commandes précédentes.”
Nous pouvons bien utiliser la version 8 de la bibliothèque en recréant un lien symbolique puisque l’installation 9.6.11 fonctionne avec la bibliothèque realine 7
cela ne rend pas notre moteur instable .
cd /lib/x86_64-linux-gnu/
ln -s libreadline.so.7 libreadline.so.8
su – postgres
psql
postgres@serveur1/instance1 >
psql (9.6.11)
Type “help” for help.
template1=#
—