Vous n'êtes pas identifié(e).
Je me pose aussi une question, est-ce qu'il est possible que pendant l'arrêt les serveurs distants continuent de tenter des connexions, et donc ca tourne sans fin ...
Simple hypothèse ...
Ou bien postgres n'accepte plus les connexions dès la demande d'arrêt.
19h50, ca tourne toujours (donc déjà 15 minutes)
2021-10-29 19:50:25.934 GMT [10759] logrepli@ppv FATAL: le système de base de données s'arrête
2021-10-29 19:50:25.935 GMT [10760] logrepli@ppv FATAL: le système de base de données s'arrête
2021-10-29 19:50:25.936 GMT [10761] logrepli@ppv FATAL: le système de base de données s'arrête
2021-10-29 19:50:25.936 GMT [10762] logrepli@ppv FATAL: le système de base de données s'arrête
2021-10-29 19:50:25.946 GMT [10763] logrepli@ppv FATAL: le système de base de données s'arrête
2021-10-29 19:50:25.947 GMT [10764] logrepli@ppv FATAL: le système de base de données s'arrête
2021-10-29 19:50:25.947 GMT [10765] logrepli@ppv FATAL: le système de base de données s'arrête
2021-10-29 19:50:25.948 GMT [10766] logrepli@ppv FATAL: le système de base de données s'arrête
2021-10-29 19:50:25.954 GMT [10767] logrepli@ppv FATAL: le système de base de données s'arrête
2021-10-29 19:50:25.978 GMT [10768] logrepli@ppv FATAL: le système de base de données s'arrête
2021-10-29 19:50:25.979 GMT [10769] logrepli@ppv FATAL: le système de base de données s'arrête
2021-10-29 19:50:25.984 GMT [10770] logrepli@ppv FATAL: le système de base de données s'arrête
2021-10-29 19:50:25.985 GMT [10771] logrepli@ppv FATAL: le système de base de données s'arrête
2021-10-29 19:50:25.989 GMT [10772] logrepli@ppv FATAL: le système de base de données s'arrête
2021-10-29 19:50:25.997 GMT [10773] logrepli@ppv FATAL: le système de base de données s'arrête
2021-10-29 19:50:26.015 GMT [10774] logrepli@ppv FATAL: le système de base de données s'arrête
2021-10-29 19:50:26.021 GMT [10775] logrepli@ppv FATAL: le système de base de données s'arrête
2021-10-29 19:50:26.022 GMT [10776] logrepli@ppv FATAL: le système de base de données s'arrête
2021-10-29 19:50:26.033 GMT [10777] logrepli@ppv FATAL: le système de base de données s'arrête
2021-10-29 19:50:26.049 GMT [10778] logrepli@ppv FATAL: le système de base de données s'arrête
2021-10-29 19:50:26.052 GMT [10779] logrepli@ppv FATAL: le système de base de données s'arrête
2021-10-29 19:50:26.081 GMT [10780] logrepli@ppv FATAL: le système de base de données s'arrête
2021-10-29 19:50:26.090 GMT [10781] logrepli@ppv FATAL: le système de base de données s'arrête
2021-10-29 19:50:26.101 GMT [10782] logrepli@ppv FATAL: le système de base de données s'arrête
2021-10-29 19:50:26.252 GMT [10493] logrepli@ppv FATAL: le système de base de données s'arrête
Merci Julien.
J'ai rebooté le serveur.
Relancé postgres via pg_ctl. Cette fois pas de messages.
Je reteste le stop en mode FAST. Ici : 19h36 chez moi
Le log affiche ca :
2021-10-29 19:38:26.107 GMT [13353] logrepli@ppv FATAL: le système de base de données s'arrête
2021-10-29 19:38:26.110 GMT [13354] logrepli@ppv FATAL: le système de base de données s'arrête
etc...
Je vais d'abord mesurer el temps d'arrêt et tester vos propositions.
Non pas d'extensions particulières à ma connaissance (hormis postgis).
Bon, je ne pense pas pouvoir positionner ce paramètre au script fourni par l'OS.
J'ai désactivé le démarrage automatique de postgresql via systemd.
J'ai tenté "pg_ctlcluster 11 main stop -m fast" mais c'est la même chose.
j'ai tenté "pg_ctlcluster 11 main stop -m immediate" et là l'arrêt est instantanné.
Je refait quand même un test.
Autre souci, quand je relance après le immediate avec la commande "pg_ctlcluster 11 main start" , j'ai encore une multitude de lignes au démarrage du type :
2021-10-29 17:47:16.867 GMT [29430] logrepli@ppv FATAL: le système de bases de données se lance
2021-10-29 17:47:16.873 GMT [29431] logrepli@ppv FATAL: le système de bases de données se lance
2021-10-29 17:47:16.881 GMT [29432] logrepli@ppv FATAL: le système de bases de données se lance
2021-10-29 17:47:16.882 GMT [29433] logrepli@ppv FATAL: le système de bases de données se lance
J'attend qu'il démarre proprement et je reteste la commande avec Fast.
Bonsoir Julien,
Merci beaucoup, effectivement, je pense que vous avez raison.
Juste le temps de chercher où positionner cet argument lors de l'appel à la commande "service postgresql stop".
Je ferai un retour ASAP.
Cdlt,
Olivier
Peut-être une piste, est-ce que lors de l'arrêt du service Postgresql, le service a du mal a killer les connexions des serveurs distants au serveur Maître de réplication ?????
Ici la commande ps -aux renvoi toutes les connexions des serveurs synchronisés (a l'heure actuelle 256 processus) :
postgres 2984 0.0 0.0 629456 4656 ? Ss 20:08 0:00 postgres: 11/main: logical replication launcher
postgres 2985 0.0 0.2 630124 19520 ? Ss 20:08 0:00 postgres: 11/main: walsender logrepli 192.168.94.100(49652) idle
postgres 2986 0.0 0.2 630160 18320 ? Ss 20:08 0:00 postgres: 11/main: walsender logrepli 192.168.94.100(49650) idle
postgres 2987 0.0 0.2 630124 19584 ? Ss 20:08 0:00 postgres: 11/main: walsender logrepli 192.168.94.100(49654) idle
postgres 2988 0.0 0.2 630124 19532 ? Ss 20:08 0:00 postgres: 11/main: walsender logrepli 192.168.94.100(49656) idle
postgres 2989 0.0 0.2 630124 19596 ? Ss 20:08 0:00 postgres: 11/main: walsender logrepli 192.168.94.100(49658) idle
postgres 2990 0.0 0.2 630160 18320 ? Ss 20:08 0:00 postgres: 11/main: walsender logrepli 192.168.94.100(49660) idle
postgres 2991 0.0 0.2 630120 19596 ? Ss 20:08 0:00 postgres: 11/main: walsender logrepli 192.168.94.100(49662) idle
j'ajoute que j'ai suivi cette documentation pour mettre en place la réplication logique :
https://public.dalibo.com/exports/forma … ndout.html
Voici quelques éléments du postgresql.conf : (pas tout)
data_directory = '/var/lib/postgresql/11/main' # use data in another directory
# (change requires restart)
hba_file = '/etc/postgresql/11/main/pg_hba.conf' # host-based authentication file
# (change requires restart)
ident_file = '/etc/postgresql/11/main/pg_ident.conf' # ident configuration file
# (change requires restart)
# If external_pid_file is not explicitly set, no extra PID file is written.
external_pid_file = '/var/run/postgresql/11-main.pid' # write an extra PID file
# (change requires restart)
#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------
# - Connection Settings -
#listen_addresses = 'localhost' # what IP address(es) to listen on;
listen_addresses = '*' # what IP address(es) to listen on;
# comma-separated list of addresses;
# defaults to 'localhost'; use '*' for all
# (change requires restart)
#port = 5433 # (change requires restart)
port = 5432 # (change requires restart)
#max_connections = 100 # (change requires restart)
max_connections = 500
------------------------------------
# - Settings -
#wal_level = replica # minimal, replica, or logical
#ici on active la réaplication logique
wal_level = logical # minimal, replica, or logical
# (change requires restart)
#fsync = on # flush data to disk for crash safety
# (turning this off can cause
# unrecoverable data corruption)
#synchronous_commit = on # synchronization level;
# off, local, remote_write, remote_apply, or on
#wal_sync_method = fsync # the default is the first option
# supported by the operating system:
# open_datasync
# fdatasync (default on Linux and FreeBSD)
# fsync
# fsync_writethrough
# open_sync
#full_page_writes = on # recover from partial page writes
#wal_compression = off # enable compression of full-page writes
#wal_log_hints = off # also do full page writes of non-critical updates
# (change requires restart)
#wal_buffers = -1 # min 32kB, -1 sets based on shared_buffers
# (change requires restart)
#wal_writer_delay = 200ms # 1-10000 milliseconds
#wal_writer_flush_after = 1MB # measured in pages, 0 disables
#commit_delay = 0 # range 0-100000, in microseconds
#commit_siblings = 5 # range 1-1000
# - Checkpoints -
#checkpoint_timeout = 5min # range 30s-1d
max_wal_size = 1GB
min_wal_size = 80MB
#checkpoint_completion_target = 0.5 # checkpoint target duration, 0.0 - 1.0
#checkpoint_flush_after = 256kB # measured in pages, 0 disables
#checkpoint_warning = 30s # 0 disables
Bonjour à tous(tes),
Depuis un moment, je rencontre des logs importants dans /var/log/postgresql/postgresql-11-main.log lors de l'arrêt du service postgresql ; Et aussi parfois, lors du démarrage sur le serveur maître de réplication.
--
Ca peut prendre 30 minutes avant l'arrêt effectif du service (ou le start).
--
Version postgresql : v11
Version Debian : 9.11
--
Je cherche mais je ne trouve pas la raison.
--
Le serveur est maître de réplication (1 maître).
5 serveurs sont synchronisés par des souscriptions aux abonnements. 53 tables par serveurs.
--
Voici le log succinct lors de la commande "service postgresql stop" : (des milliers de lignes de ce type ...)
--
2021-10-28 19:21:52.726 GMT [10994] logrepli@ppv FATAL: le système de base de données s'arrête
2021-10-28 19:21:52.765 GMT [11037] logrepli@ppv FATAL: le système de base de données s'arrête
2021-10-28 19:21:52.766 GMT [11038] logrepli@ppv FATAL: le système de base de données s'arrête
--
Sinon la réplication fonctionne bien une fois postgresql actif.
J'ai dû loupé quelque chose ...
--
Toute l'aide sera la bienvenue,
--
merci,
Cdlt,
Olivier