Postgresql

De BlaxWiki
Révision datée du 14 avril 2021 à 11:06 par 127.0.0.1 (discussion)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à la navigationAller à la recherche

Documentation générale sur postgresql (tiré de http://www.dj-j.net/waka/Linux:Administration_PostgreSQL)

Support de Cours postgresql_v8 + (tiré de http://sebastien.nameche.fr/supports/PostgreSQL_v20100130.pdf)

Configuration, mise en oeuvre de PostGreSQL et performances by BULL

Configuration[modifier]

Exemple pour une configuration simple en local (/etc/postgres/pg_hba.conf) :

Commenter toutes les entrées et ne conserver que :
# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD
local   all         postgres                          ident
local   all         all                               ident
host    all         all         127.0.0.1/32          md5
host    all         all         ::1/128               md5

#le fait d'avoir trust permet de se loguer avec le user en question en local sans rentrer de mot de passe
#local   all         postgres                          trust

Si les modifications apportees au fichier /etc/postgres/pg_hba.conf ne sont pas pris en compte, deux possibilités :
- apporter les memes modifications dans le fichier /var/lib/postgres/data/pg_hba.conf
- faire un symlink entre /etc/postgres/pg_hba.conf /var/lib/postgres/data/pg_hba.conf

Création et modification d'un user[modifier]

[postgres@]#su postgres

[postgres@]$ createuser
Enter name of role to add: vision
Shall the new role be a superuser? (y/n) n
Shall the new role be allowed to create databases? (y/n) n
Shall the new role be allowed to create more new roles? (y/n) n

[postgres@]$ psql
UPDATE pg_shadow SET passwd = 'osK3twig2dgV' where usename = 'postgres'

Si la commande ci dessus ne fonctionne (ce qui est le cas pour les version 9.x), faire un : alter role postgres password '2KAihGIJjFxx';
Pour supprimer le mot de passe du user postgres : alter role postgres password null;

Pour voir si les user ont des mots de passe :  select rolname,rolpassword,rolvaliduntil from pg_authid;

Import de base[modifier]

su postgres
pg_restore -U asmdba -d asm dumppgsql_2012-04-10.sql # Ici on restore depuis le fichier dumppgsql_2012-04-10.sql dans la base asm avec le user asmdba (qui a été créé avec les droits
suivant : createuser -sP asmdba && createdb -U asmdba -h localhost asm)

Synchronisation master / slave[modifier]

Voir la documentation

Optimisation[modifier]

 - work_mem > à fortement réhausser + tester (tester a 64Mo pour voir)

 - effective_io_concurrency < à laisser voire réduire à 150/200 si on réhausse le cache global. (process interne à postgres), c'est la partie qui s'execute coté disk (io), donc la réduire augmente l’utilisation du cache et réduit l’utilisation disque
 
 - max_worker_processes > a fortement réhausser, c’est le nombre de requêtes que traite actuellement le service. La valeur actuelle (4) est trop basse, ça créé des queues sur les requetes (donc multiplication de process en idle)  Passer à 12 par ex

 - shared_buffer > paramètre qui va de pair avec le max_worker_process, il faut le régler pour que le nombre de max_worker_process multipliés par la valeur en shared_buffer ne dépasse pas l’effective_cache_size. Le cache_size etant de 14.5Go, si on passe à 10 worker_process, il faudra que le shared_buffer ne dépasse pas 1.4Go

 - wal_buffers > c’est l’équivalent du transactionlog. Il faut rehausser à 64 ou 128 Mo pour limiter le nombre de logs créé et géré et donc réduire la charge CPU

Reindexation & vaccum[modifier]

https://wiki.blaxeen.com/index.php/Postgresql_reindexation