Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#1 Réplication » Répartition de charge sur standby physique » 25/07/2019 16:12:35
- lajoumard
- Réponses : 2
Bonjour,
Je cherche la meilleure solution pour répartir la charge des requêtes sur un serveur postgres maitre et son standby physique.
J'aimerai que les transactions en lecture seule aillent sur le slave (ou master si slave indispo ) pour alléger la charge.Mais l'ideal serait qu'un outil tiers le fasse sans qu'on soit obligé de retoucher le code applicatif et gérer cela
avec 2 connectiions JDBC . Existe-t-il un outil ou une stack qui permettre de faire le tri des transactions entrantes pour les rediriger ensuite vers la bonne connexion ? la base étant en autocommit cet outil devrait être capable de dire sur un SELECT "j'envoi cette transaction " vers le seveur standby . A l'opposé si la transaction commence par un BEGIN ou est un ordre DML différent de SELECT alors la transaction sera dirigée vers le master .
Merci
#2 Site PostgreSQL.fr » pg_ctl vs systemctl » 26/02/2018 13:48:44
- lajoumard
- Réponses : 1
Bonjour,
J'ai installé un moteur postgres 9.5 sur une redhat 7. J'arrive bien à la démarrer/arrêter avec systemctl et pg_ctl dans presque tous les cas sauf :
Si je démarre l'instance avec "pg_ctl start" je ne peux pas l'arrêter ni demander son statut avec systemctl . Je suis obligé de l'arrêter avec pg_ctl puis de la redémarrer avec systemctl.
La sortie.
pg_ctl start (avec user postgres
serveur en cours de démarrage
-bash-4.2$ 2018-02-26 12:43:35 CET [52755]: [1-1]LOG: redirecting log output to logging collector process
2018-02-26 12:43:35 CET [52755]: [2-1]HINT: Future log output will appear in directory "pg_log".
ps -fu postgres
UID PID PPID C STIME TTY TIME CMD
postgres 50089 50088 0 11:42 pts/1 00:00:00 -bash
postgres 52755 1 0 12:43 pts/2 00:00:00 /usr/pgsql-9.5/bin/postgres
postgres 52756 52755 0 12:43 ? 00:00:00 postgres: logger process
postgres 52758 52755 0 12:43 ? 00:00:00 postgres: checkpointer process
postgres 52759 52755 0 12:43 ? 00:00:00 postgres: writer process
postgres 52760 52755 0 12:43 ? 00:00:00 postgres: wal writer process
postgres 52761 52755 0 12:43 ? 00:00:00 postgres: autovacuum launcher process
postgres 52762 52755 0 12:43 ? 00:00:00 postgres: archiver process
postgres 52763 52755 0 12:43 ? 00:00:00 postgres: stats collector process
postgres 52764 52755 0 12:43 ? 00:00:00 postgres: bgworker: pglogical supervisor
postgres 52767 52755 0 12:43 ? 00:00:00 postgres: bgworker: pglogical manager 16386
J'essaye de demander le status avec systemctl (en root)
systemctl status postgresql-9.5 -l
● postgresql-9.5.service - PostgreSQL 9.5 database server
Loaded: loaded (/usr/lib/systemd/system/postgresql-9.5.service; enabled; vendor preset: disabled)
Active: failed (Result: exit-code) since lun. 2018-02-26 11:44:33 CET; 1h 1min ago
Process: 50283 ExecStop=/usr/pgsql-9.5/bin/pg_ctl stop -D ${PGDATA} -s -m fast (code=exited, status=1/FAILURE)
Process: 50257 ExecStart=/usr/pgsql-9.5/bin/pg_ctl start -D ${PGDATA} -s -w -t 300 (code=exited, status=0/SUCCESS)
Process: 50251 ExecStartPre=/usr/pgsql-9.5/bin/postgresql95-check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS)
Main PID: 50260 (code=exited, status=0/SUCCESS)
févr. 26 11:44:24 srisvm-europapivotbdd01 systemd[1]: Starting PostgreSQL 9.5 database server...
févr. 26 11:44:24 srisvm-europapivotbdd01 pg_ctl[50257]: 2018-02-26 11:44:24 CET [50260]: [1-1]LOG: redirecting log output to logging collector process
févr. 26 11:44:24 srisvm-europapivotbdd01 pg_ctl[50257]: 2018-02-26 11:44:24 CET [50260]: [2-1]HINT: Future log output will appear in directory "pg_log".
févr. 26 11:44:25 srisvm-europapivotbdd01 systemd[1]: Started PostgreSQL 9.5 database server.
févr. 26 11:44:33 srisvm-europapivotbdd01 pg_ctl[50283]: pg_ctl : le fichier de PID « /base/europa/postmaster.pid » n'existe pas
févr. 26 11:44:33 srisvm-europapivotbdd01 pg_ctl[50283]: Le serveur est-il en cours d'exécution ?
févr. 26 11:44:33 srisvm-europapivotbdd01 systemd[1]: postgresql-9.5.service: control process exited, code=exited status=1
févr. 26 11:44:33 srisvm-europapivotbdd01 systemd[1]: Unit postgresql-9.5.service entered failed state.
févr. 26 11:44:33 srisvm-europapivotbdd01 systemd[1]: postgresql-9.5.service failed.
Le fichier postmater existe pourtant bien avec les bons droits .
[root@srisvm-europapivotbdd01 ~]# ll /base/europa/postmaster.pid
-rw------- 1 postgres postgres 77 26 févr. 12:43 /base/europa/postmaster.pid
Si vous avez une idée?
merci
#3 Re : Réplication » Replication logique et physique à la fois » 27/06/2017 18:26:35
Merci . Je viens de faire des tests concluants avec une base maitre avec une standby logique et une physique. Par contre je ne vois pas d'option pour répliquer une table dans un autre schéma que celui d'origine ? Cela serait intéressant quand on veut mutualiser plusieurs bases de structure identique dans une seule . je ne vois pas d'option dans la subscription qui le permette alors que le nom de la base cible peut , lui, être modifié.
Autre bémol mais normal. On ne peut pas faire de réplication logique à partir d'une standby physique car elle est en lecture seule et ne veut donc pas créer les slots de réplication quand on crée la subscription sur la base logique(ERROR: could not create replication slot "test_sub": ERROR: logical decoding cannot be used while in recovery). Ca aurait pu être intéressant pour décharger la base maitre de la réplication.
#4 Re : Réplication » Replication logique et physique à la fois » 27/06/2017 09:14:49
Merci mais une base peut elle être en réplication physique vers une standby (pour la haute dispo) et en réplication logique vers une autre standby (pour des besoins autres) ?
Je ne vois nulle part de réponse à cette question (vu que le wal_level est unique je suppose que non mais cette demande me parait être intéressante pour la suite)
#5 Réplication » Replication logique et physique à la fois » 26/06/2017 17:56:34
- lajoumard
- Réponses : 4
Bonjour,
J'ai un besoin spécifique sur 2 bases répliquées physiquement en streming replication avec des slots de replication.
Est-il possible de rajouter sur une des 2 bases un base cascadée en replication logique (idéalement sur le slave) ?
En fait j'ai besoin d 'avoir accès à une base en lecture-ecriture en temps réel qui ressemble à l base maître mais au niveau responsabilité je n'y ai pas accès . deplus je veux pouvoir créer mes propres index.
Je viens de tester la v10 avec une base maitre et les méthodes de publication sur toutes les tables et subscription sur la base répliquée logiquement . Ca correspond bien à mon besoin mais est-ce que je peux aussi avoir une réplication de cette base maitre pour la haute dispo ?
Merci
Pages : 1