Vous n'êtes pas identifié(e).

#26 Re : Réplication » [RESOLU] Problème de réplication streaming : table non créée » 17/11/2017 15:27:27

ml

C'est entendu mais alors pourquoi la table que je tente de créer n’aboutit pas s'il vous plait ?

#27 Re : Réplication » [RESOLU] Problème de réplication streaming : table non créée » 17/11/2017 13:34:06

ml

Je viens d'annuler la transaction de création de table : avant j'avais une trace ds le fichier de log du slave indiquant :   

LOG:  n'a pas pu recevoir les données du client : Connexion ré-initialisée par le correspondant



mais là il n'y a rien, la dernière ligne du fichier de log slave étant : 

LOG:  Commence le flux des journaux depuis le principal à 0/1D000000 sur la timeline 1

#28 Re : Réplication » [RESOLU] Problème de réplication streaming : table non créée » 17/11/2017 12:58:25

ml

Ca fonctionne merci smile



Néanmoins coté slave dans le fichier de log j'ai tjrs les 2 erreurs que je ne comprends pas :



2017-11-17 11:37:06.818 CET [21928] LOG:  le système de base de données est arrêté
2017-11-17 11:37:06.941 CET [22109] LOG:  le système de bases de données a été arrêté pendant la restauration à 2017-11-17 11:37:06 CET
cp: impossible d'évaluer « /data/archives/00000002.history »: Aucun fichier ou dossier de ce type
2017-11-17 11:37:06.944 CET [22109] LOG:  entre en mode standby
cp: impossible d'évaluer « /data/archives/00000001000000000000001D »: Aucun fichier ou dossier de ce type
2017-11-17 11:37:06.949 CET [22109] LOG:  la ré-exécution commence à 0/1D000098
2017-11-17 11:37:06.949 CET [22109] LOG:  état de restauration cohérent atteint à 0/1D0000D0
2017-11-17 11:37:06.949 CET [22109] LOG:  enregistrement avec prev-link 10000/2240000 incorrect à 0/1D0000D0
2017-11-17 11:37:06.950 CET [22107] LOG:  le système de bases de données est prêt pour accepter les connexions en lecture seule
2017-11-17 11:37:06.957 CET [22115] LOG:  Commence le flux des journaux depuis le principal à 0/1D000000 sur la timeline 1



Et puis je viens de lancer la création d'une table qui mouline depuis plus de 5 min.. j'en reviens à mon problème de départ
Auriez-vous une idée ?

#29 Re : Réplication » [RESOLU] Problème de réplication streaming : table non créée » 17/11/2017 12:29:41

ml

Après modification du fichier pg_hba.conf
Reload de la master
Suppression des données du slave et rechargement via pg_basebackup



J'ai l'erreur suivante :



-bash-4.2$ psql
psql: FATAL:  aucune entrée dans pg_hba.conf pour l'hôte « [local] », utilisateur « postgres »,
base de données « postgres », SSL inactif



Ci_après mon fichier pg_hba.conf :

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
#local   all             all                                     trust
# IPv4 local connections:
#host    all             all             127.0.0.1/32            ident
host     all             all             0.0.0.0         0.0.0.0          trust
# IPv6 local connections:
#host    all             all             ::1/128                 trust
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local   replication     all                                     trust
#host    replication     all             127.0.0.1/32            trust
#host    replication     all             ::1/128                 trust
#hostnossl    all          all            0.0.0.0/0  trust
host    replication   all         0.0.0.0         0.0.0.0   trust

#30 Re : Réplication » [RESOLU] Problème de réplication streaming : table non créée » 17/11/2017 11:31:04

ml

Bonjour Sébastien,


C'est entendu !


Je fais les modifications et reviens vers vous.

#31 Re : Réplication » [RESOLU] Problème de réplication streaming : table non créée » 16/11/2017 18:40:40

ml

J'ai fais les modifications suivantes :



1. création du fichier .pgpass  (hostname et password par les valeurs qui conviennent)
hostname:5432:*:postgres:password



2. modification du primary_conninfo = 'host=localhost port=5432' : j'ai mis le hostname du master au lieu de localhost.



3.  reboot du master qui m'a généré une erreur de connexion dans le slave :


2017-11-16 17:26:59.619 CET [16964] FATAL:  n'a pas pu transmettre le message de fin d'envoi de flux au primaire : aucun COPY en cours
cp: impossible d'évaluer « /data/archives/00000002.history »: Aucun fichier ou dossier de ce type
cp: impossible d'évaluer « /data/archives/000000010000000000000017 »: Aucun fichier ou dossier de ce type
2017-11-16 17:26:59.627 CET [16919] LOG:  longueur invalide de l'enregistrement à 0/17000098 : voulait 24, a eu 0
2017-11-16 17:26:59.630 CET [16982] FATAL:  n'a pas pu se connecter au serveur principal : n'a pas pu se connecter au serveur : Connexion refusée
                Le serveur est-il actif sur l'hôte « localhost » (127.0.0.1)
                et accepte-t-il les connexionsTCP/IP sur le port 5432 ?
cp: impossible d'évaluer « /data/archives/00000002.history »: Aucun fichier ou dossier de ce type
cp: impossible d'évaluer « /data/archives/000000010000000000000017 »: Aucun fichier ou dossier de ce type
2017-11-16 17:27:04.641 CET [16995] LOG:  Commence le flux des journaux depuis le principal à 0/17000000 sur la timeline 1



Y aurait-il quelque chose d'incorrect dans le ph_hba.conf ?

#32 Re : Réplication » [RESOLU] Problème de réplication streaming : table non créée » 16/11/2017 17:18:27

ml

Bonjour big_smile



ruizsebastien a écrit :

- avez-vous dans le postgresql.conf : listen_addresses = '*' des 2 serveurs

Oui



ruizsebastien a écrit :

- avez-vous mis dans le .pgpass du slave et du master les lignes qui corespondent à la connexion à la pseudo base "replication"

neutral euh non car je pensais que ce n'était pas obligatoire... mais je crois les heures passées à lire la documentation, extrêmement bien faite soit dit en passant, m'ont fait sauté cette phrase roll
Et en relisant la doc je me rend compte en effet que ça l'est ..
cf " Un mot de passe devra aussi être fourni, si le primaire demande une
authentification par mot de passe. Il peut être fourni soit dans la chaîne primary_conninfo soit séparément dans un fichier ~/.pgpass sur le serveur de standby (utilisez replication comme nom de base de données). Ne spécifiez pas de
nom de base dans la chaîneprimary_conninfo " ..



ruizsebastien a écrit :

- comment est configuré votre pg_hba.conf ?

Comme suit, j'ai fais au plus imple :

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     trust
# IPv4 local connections:
host    all             all             127.0.0.1/32            ident
# IPv6 local connections:
host    all             all             ::1/128                 trust
# Allow replication connections from localhost, by a user with the
# replication privilege.
local   replication     all                                     trust
host    replication     all             127.0.0.1/32            trust
host    replication     all             ::1/128                 trust

hostnossl    all          all            0.0.0.0/0  trust



ruizsebastien a écrit :

et pour primary_conninfo = 'host=localhost port=5432' :
il faut mettre le hostname du  master au lieu de localhost.

Entendu



J'effectue les modifications et reviens vers vous.


Merci beaucoup !  smile

#33 Réplication » [RESOLU] Problème de réplication streaming : table non créée » 16/11/2017 16:10:58

ml
Réponses : 23

Bonjour,

Je suis une newbie sur PgSQL aussi je me tourne vers vous en dernier recours afin de comprendre pourquoi la réplication que je tente de mettre en place ne fonctionne pas.

Pour tester et me faire la main, j'ai installé 2 serveurs un maitre et un esclave en 10.1 sur RHEL 7.2 en local dans un but de faire de la HA sur 2 noeuds.

Pour la réplication j'ai configuré comme suit :

** Sur le maitre **
J'ai mis à jour le fichier postgresql.conf tel quel :
max_wal_senders = 10
wal_level = replica
archive_command = 'test ! -f /data/archives/%f && cp %p /data/archives/%f'
J'ai effectué la sauvegarde que j'ai ensuite importée coté esclave :
pg_basebackup -h localhost -D /data/pgsql/10/data/save -Ft -z -P

** Sur l'esclave  **
wal_level = replica
hot_standby = on
J'ai créer un fichier recovery.conf tel quel :
standby_mode = 'on'
restore_command = 'cp /data/archives/%f %p'
primary_conninfo = 'host=localhost port=5432'
recovery_target_timeline = 'latest'


Le problème que j'ai actuellement est que la réplication n'aboutit pas. Lorsque je tente de créer un table par exemple, la requête ne me rend pas la main jusqu'à ce que je fasse un cancel. Elle est dès lors créée sur le Maitre mais pas sur l'esclave (logique)

Lorsque je finis par annuler la transaction j'ai le msg suivant :

ATTENTION:  annulation de l'attente pour la réplication synchrone à la demande de l'utilisateur
DÉTAIL : La transaction a déjà enregistré les données localement, mais il se peut que
cela n'ait pas été répliqué sur le serveur en standby.
CREATE TABLE

J'ai laissé tourner jusqu'à 3 heure mais rien.

Ci-après les dernières lignes de la log de l'esclave :
2017-11-16 14:52:53.793 CET [4801] LOG:  a reçu une demande d'arrêt rapide
2017-11-16 14:52:53.796 CET [4801] LOG:  annulation des transactions actives
2017-11-16 14:52:53.799 CET [14792] FATAL:  arrêt des connexions suite à la demande de l'administrateur
2017-11-16 14:52:53.801 CET [4809] FATAL:  arrêt du processus walreceiver suite à la demande de l'administrateur
2017-11-16 14:52:53.802 CET [14791] FATAL:  arrêt des connexions suite à la demande de l'administrateur
2017-11-16 14:52:53.806 CET [4806] LOG:  arrêt en cours
2017-11-16 14:52:53.813 CET [4801] LOG:  le système de base de données est arrêté
2017-11-16 14:52:53.938 CET [16112] LOG:  le système de bases de données a été arrêté pendant la restauration à 2017-11-16 14:52:53 CET
cp: impossible d'évaluer « /data/archives/00000002.history »: Aucun fichier ou dossier de ce type
2017-11-16 14:52:53.941 CET [16112] LOG:  entre en mode standby
cp: impossible d'évaluer « /data/archives/000000010000000000000015 »: Aucun fichier ou dossier de ce type
2017-11-16 14:52:53.949 CET [16112] LOG:  la ré-exécution commence à 0/150522E0
2017-11-16 14:52:53.949 CET [16112] LOG:  état de restauration cohérent atteint à 0/15052420
2017-11-16 14:52:53.949 CET [16112] LOG:  longueur invalide de l'enregistrement à 0/15052420 : voulait 24, a eu 0
2017-11-16 14:52:53.950 CET [16110] LOG:  le système de bases de données est prêt pour accepter les connexions en lecture seule
2017-11-16 14:52:53.958 CET [16118] LOG:  Commence le flux des journaux depuis le principal à 0/15000000 sur la timeline 1
2017-11-16 15:00:22.393 CET [16152] LOG:  n'a pas pu recevoir les données du client : Connexion ré-initialisée par le correspondant
2017-11-16 15:00:22.393 CET [16153] LOG:  n'a pas pu recevoir les données du client : Connexion ré-initialisée par le correspondant


Merci pour votre aide.

Ml

Pied de page des forums

Propulsé par FluxBB