Load Balancing pour Patroni avec Keepalived

Patroni ne gère que le service PostgreSQL en pilotant la réplication. Les applications doivent déterminer quelle est l’instance disponible en écriture et quelle est la ou les instances en lecture seule. Pour fournir un point d’accès unique, sous la forme d’une adresse IP virtuelle, il faut ajouter un service ou mécanisme supplémentaire. Keepalived fournit ce service, il est également capable d’équilibrer les connexions entre plusieurs instances. Keepalived est un logiciel de haute-disponibilité et d’équilibrage de charge reposant sur le noyau Linux....

2021-06-09 · 18 min

IP flottante pour Patroni avec Keepalived

Patroni ne gère que le service PostgreSQL en pilotant la réplication. Il ne fournit volontairement aucun moyen d’accès pour les applications. Elles doivent pourtant déterminer quel serveur PostgreSQL est accessible en écriture, pour cela une solution est de placer une adresse IP supplémentaire sur ce serveur en écriture qui est déplacée automatique en cas de bascule. Il faut donc ajouter un service supplémentaire à l’architecture pour gérer la placement de cette adresse IP, généralement appelée, IP virtuelle, VIP, ou IP flottante : Keepalived permet de le faire....

2021-06-07 · 7 min

PostgreSQL et SELinux à l'ère de systemd

Ce post se veut une mise à jour du post précédent sur le sujet. En effet, le module SELinux, les commandes utilisées ont évolué avec l’adoption de systemd. Les principes restent les mêmes. ...

2021-02-11 · 3 min

Gestion des utilisateurs pgBouncer avec auth_query

Avec pgBouncer 1.6 sont arrivés deux nouveaux paramètres, auth_user et auth_query, qui permettent de faciliter la gestion du fichier des utilisateurs. Le fichier des utilisateurs contient les couples utilisateur / mot de passe hashé pour s’authentifier à la place de l’utilisateur final sur le serveur PostgreSQL. Il y a deux problèmes majeurs avec ce fichier utilisateur : son maintien fastidieux et le risque de collision entre noms de roles identiques mais avec des mots de passe différents si le même pgBoucner accède à plusieurs instances PostgreSQL. ...

2017-10-30 · 2 min

Configuration de pgBouncer avec des connexions TLS

Un petit howto pour créer des certificats et les utiliser avec PostgreSQL et pgBouncer. ...

2017-10-27 · 4 min

Réflexions sur l'archivage des fichiers WAL

PostgreSQL faisant son bonhomme de chemin, on se retrouve désormais avec des configurations où il faut archiver plusieurs fois les WAL parce qu’on a de la sauvegarde PITR et de la réplication. ...

2015-12-30 · 2 min

pg_back le script de base pour sauvegarder PostgreSQL

Il y a fort longtemps, et c’est ma première contribution relative à PostgreSQL, j’ai écrit un script de backup qui dump tout un serveur PostgreSQL avec pg_dump et pg_dumpall. Il s’agit de pg_back. ...

2015-03-12 · 1 min

Confiner PostgreSQL avec SELinux

.notice{padding:18px;line-height:24px;margin-bottom:24px;border-radius:4px;color:#444;background:#e7f2fa}.notice p:last-child{margin-bottom:0}.notice-title{margin:-18px -18px 12px;padding:4px 18px;border-radius:4px 4px 0 0;font-weight:700;color:#fff;background:#6ab0de}.notice.warning .notice-title{background:rgba(217,83,79,.9)}.notice.warning{background:#fae2e2}.notice.info .notice-title{background:#f0b37e}.notice.info{background:#fff2db}.notice.note .notice-title{background:#6ab0de}.notice.note{background:#e7f2fA}.notice.tip .notice-title{background:rgba(92,184,92,.8)}.notice.tip{background:#e6f9e6}.icon-notice{display:inline-flex;align-self:center;margin-right:8px}.icon-notice img,.icon-notice svg{height:1em;width:1em;fill:currentColor}.icon-notice img,.icon-notice.baseline svg{top:0.125em;position:relative} Remarque Ce post est partiellement obsolète, avec le passage à systemd. Voir la mise à jour. J’avais déjà expérimenté un peu avec SELinux il y a deux ans sans aller trop loin, parce que j’entendais souvent la phrase “Si on veut de la sécurité, il faut SELinux” et surtout à cause de l’arrivée de l’extension sepgsql dans les modules contrib de PostgreSQL. Ça avait donné une conf pour le Fosdem où finalement, j’ai plus parlé des privilèges classiques que de SELinux. ...

2014-09-22 · 4 min

Oups... des tablespaces imbriqués

Imbriquer des tablespaces n’a pas vraiment de sens dans PostgreSQL surtout si on veut se prendre la tête avec des montages dans tous les sens… Mais bon c’est permis, car PostgreSQL utilise uniquement les liens symboliques dans $PGDATA/pg_tblspc pour accéder au contenu des tablespaces. ...

2013-04-06 · 2 min

Got GUC?

Les paramètres de configuration de PostgreSQL sont appelés GUC ce qui signifie Grand Unified Configuration, c’est le nom de la partie du code qui gère les paramètres de configuration. En gros, ce sont tous les paramètres du fichier postgresql.conf. Ce qui est moins connu et utilisé, c’est la possibilité de configurer ces paramètres à différents niveaux : Fichier postgresql.conf Ligne de commande du postmaster, le processus principal du serveur Base de données Rôle Rôle sur une base de données Session Transaction La précédence des valeurs va en descendant dans la liste, par exemple la valeur d’un paramètre au niveau d’un rôle écrase celle positionnée au niveau de la base de donnée ou la ligne de commande....

2012-01-25 · 3 min