Vous n'êtes pas identifié(e).
Pages : 1
Bonjour,
J'ai un soucis sur un serveur principal qui a accumulé des wal dans pg_xlog. Le log de postgresql indique des erreurs rsync. A cours de disque, le service postgresql s'est éteint.
Pour débloquer la prod, des wal censés être traités (marqué .done dans archive_status/) ont été déplacés, ce qui a permis de remonter le service postgresql (et permettre des traitements de nuit).
La réplication est maintenant HS et les wal continuent à s'accumuler.
Je pense que ce problème est connu et trivial, mais je n'ai pas les compétences pour le gérer.
Le détail de l'environnement :
- 2 serveurs postgresql 9.6 répliqués par repmgr (streaming), base de 300 Go, la commande archive_command est un rsync sur un serveur de sauvegarde avec barman
- le serveur barman qui doit recevoir les wal du primaire
- la réplication est hs (pg_stat_replication ne donne rien), le slot est toujours présent
- les wal s'accumulent toujours
Comment puis-je nettoyer le pg_xlog et remonter la réplication ?
- est-ce que je dois supprimer le slot de réplication puis recréer la réplication ?
Eventuellement, notre équipe est prête à accepter une petite prestation pour nous aider (me contacter en privé).
Merci.
Dernière modification par stephane.lorek (13/05/2021 09:59:08)
Hors ligne
Bonjour,
En tout premier lieu il nous faudrait les traces du serveur master en particulier les erreurs produites par archive_command (type FATAL).
Cordialement,
Sébastien.
Hors ligne
Comme vu par mail un peu avant, et grâce aux logs que tu m'as envoyé, il n'y a aucune erreur sur l'archivage. Donc le problème vient plus probablement du slot de réplication qui aurait empêché la réutilisation des journaux de transactions.
Le plus simple serait donc de supprimer le slot de réplication puis, à condition qu'il y ait de l'espace libre maintenant dans pg_xlog, de redémarrer PostgreSQL. Une fois que le serveur primaire est rétabli, il te restera à reconstruire le secondaire.
Guillaume.
Hors ligne
A priori, sur le secondaire, je n'ai pas de log postgresql à la date du 9 mai. Je pense que le serveur a du stopper et que cela a provoqué l'accumulation des wal.
J'ai déenregistré le secondaire avec repmgr et supprimé le slot et archive_command (avec pg_drop_replication_slot, je n'ai pas trouvé la commande qui le fait avec repmgr) a fait le ménage, l'espace est retrouvé.
il me reste à relancer la réplication.
Hors ligne
Concernant barman, j'ai un soucis. Les opérations que je tente sur barman (backup, archive ...) me donne une erreur :
-bash-4.2$ barman backup xxxx-pgsql-vipw-01
EXCEPTION: [Errno 2] No such file or directory: '/var/run/barman/.xxxx-pgsql-vipw-01-backup.lock'
Les wal s'accumument dans mon répertoire incomming de sauvegarde.
Le problème est décalé sur barman et je suppose quand le disque sera plein sur le serveur barman, l'archive_comande ne fonctionera plus.
Je n'ai pas de /var/run/barman
Quelqu'un a une idée pour régler ce problème barman avant que je relance la réplication ?
Merci.
Hors ligne
Perso, je créerais ce répertoire pour voir si ça dénoue la situation.
Guillaume.
Hors ligne
C'est ce que j'ai fait et effectivement ça a débloqué la situation barman.
Je n'ai pas d'explication sur la perte de ce répertoire.
Je vais essayer de relancer la réplication avec repmgr.
Merci beaucoup de votre aide.
Hors ligne
Ca dépend des distributions mais /var/run peut très bien être une partition en RAM disque.
Par exemple sur Ubuntu 18.04:
df -h /var/run
Sys. de fichiers Taille Utilisé Dispo Uti% Monté sur
tmpfs 793M 1,8M 791M 1% /run
Donc il suffit d'un reboot pour perdre son contenu.
Les répertoires sont recréés par les scripts qui lancent les services (typiquement systemd), mais un dysfonctionnement de ces scripts suivi d'un lancement plus ou moins à la main peut arriver au résultat que le service tourne mais qu'un répertoire indispensable n'est pas là.
@DanielVerite
http://blog-postgresql.verite.pro/
Hors ligne
Merci de cette réponse. Je n'y avais pas songé.
Hors ligne
Je suis en cours de remonter la réplication avec un script qui encapsule les étapes repmgr.
Dommage qu'il ne crée par le slot de réplication sur le master.
Je ferme ce sujet.
Hors ligne
Pages : 1