Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#1 24/01/2014 16:47:25
- Lurgo
- Membre
Créer un retard dans la réplication
Bonjour,
Je voudrais faire comme sur oracle avec le paramètre delay de log_archive_dest.
C'est à dire créer un décalage volontaire sur le standby.
Par exemple configurer le standby pour qu'il rejoue l'archive 5 heures après l'avoir reçu.
Précisions; Je suis en Streaming Replication, sous Redhat.
... et ça marche bien
Hors ligne
#2 24/01/2014 17:55:11
- rjuju
- Administrateur
Re : Créer un retard dans la réplication
Bonjour,
le but de la streaming replication est justement d'avoir le moins de retard possible.
Si vous voulez mettre en place un lag, il vous faudra modifier votre restore_command en y incluant un délai, par exemple avec un find -mtime -5, et désactiver la streaming replication.
Julien.
https://rjuju.github.io/
Hors ligne
#3 27/01/2014 10:34:03
- arthurr
- Membre
Re : Créer un retard dans la réplication
ou attendre la 9.4 : http://michael.otacoo.com/postgresql-2/ … -standbys/
Hors ligne
#4 27/01/2014 18:46:35
- Lurgo
- Membre
Re : Créer un retard dans la réplication
Si je désactive la Streaming Replication; je n'aurais pas ma Standby en lecture; donc aucun intérêt pour moi d'avoir un décalage dans le temps.
(Le but est de repêcher des données supprimées par erreur qq heures avant)
---------------------------------------------------------------------------------------------------------------------
Passer de la Streaming Replication au mode Archive revient à modifier les paramètres suivant;
. Du fichier postgres.conf;
wal_level = hot_standby => archive
hot_standby = on => off
. Du fichier recovery.conf;
restore_commande = 'cp -pr /mon_repo_archive/%f %p'
=>
restore_commande = 'rsync -avrc -e -i `find /mon_repo_archive/%f -type f -ctime -5` %p'
--> J'ai une FATAL erreur au lancement
---------------------------------------------------------------------------------------------------------------------
Existe-t-il une solution aujourd'hui?
Ou devrais-je attendre la version 9.4?
Merci pour vos recherches
Dernière modification par Lurgo (27/01/2014 19:08:08)
Hors ligne
#5 27/01/2014 19:17:14
- rjuju
- Administrateur
Re : Créer un retard dans la réplication
Vous confondez hot standby (esclave accessible en lecture seule) et streaming replication (réplication en flux en connexion directe sur le serveur).
Désactiver la streaming réplication implique uniquement d'enlever la ligne "primary_conninfo" du recovery.conf, il faut donc conserver les paramètres wal_level et le hot_standby du postgresql.conf.
Julien.
https://rjuju.github.io/
Hors ligne
#6 28/01/2014 12:56:18
- Lurgo
- Membre
Re : Créer un retard dans la réplication
Merci Julien; Effectivement, pour enlever la STREAMING REPLICATION;
- Je commente primary_conninfo
- Je renseigne restore_command
restore_commande = 'scp -pr @mon_serveur:/mon_repo_archive/%f %p'
La réplication fonctionne bien. Mais j'ai des messages dans le log qui reviennent toutes les 5 secondes;
-----------------------------------------------------------------------------------
scp: /mon_repo_archive/mon_fichier_wal: No such file or directory
-----------------------------------------------------------------------------------
(mon_fichier_wal évolue)
D'autre part, je suis toujours à la recherche de la syntaxe idéale pour créer le décalage (5h).
Je tourne autour de rsync, find... que j'ai du mal à utiliser pour un serveur distant (@mon_serveur).
Hors ligne
#7 28/01/2014 13:29:41
- gleu
- Administrateur
Re : Créer un retard dans la réplication
Si vous abandonnez le Streaming Replication pour le Log Shipping, autant utiliser pg_standby. Ça vous évitera ce type de message d'erreur.
En ce qui concerne le décalage, ce sera difficile à faire. Peut-être qu'en indiquant un délai de 5h à pg_standby, vous parviendrez à ça...
Guillaume.
Hors ligne
Pages : 1