2017-03-10 3 views
0

J'utilise actuellement postgresql avec la réplication de l'envoi de journaux. J'utilise une ressource maître/esclave de stimulateur cardiaque pour gérer le basculement postgresql.Est-il possible de rétrograder un noeud maître sans utiliser "repmgr standby clone" et pg_rewind

Je demandais s'il y avait un moyen de rétrograder un maître, le mettre en veille et le garder synchronisé sans utiliser "repmgr standby clone" ni pg_rewind.

En fait, je veux que l'ancien maître soit rapidement prêt à revenir à l'état maître et que "repmgr standby clone" prenne plusieurs minutes pour récupérer ce qui est trop long.

Je vois qu'il est possible d'utiliser pg_rewind pour une synchronisation plus rapide mais cela implique d'avoir wal_log_hints activé, et j'ai peur que cette option diminue les performances du master. Le maître est déjà trop occupé.

J'essaie de simplement écrire le recovery.conf dans le répertoire de données, le maître a bien tourné en mode esclave, mais il n'a pas en amont:

[[email protected] httpd]# su - postgres -c "/usr/pgsql-9.5/bin/repmgr -f /var/lib/pgsql/repmgr/repmgr.conf cluster show" Role | Name | Upstream | Connection String ----------+--------|----------|-------------------------------------- * master | node-02 | | host=node-02 user=repmgr dbname=repmgr standby | node-01 | | host=node-01 user=repmgr dbname=repmgr

Je voudrais qu'il est assez clair, En fait, je suis un débutant dans la réplication de base de données. Toute aide serait appréciée.

Répondre

0

J'ai trouvé la solution par moi-même. En fait, l'ancien maître a juste besoin d'être enregistré après avoir été rétrogradé. --force devrait être utilisé si le noeud a déjà été enregistré.

[[email protected] ] su - postgres -c "/usr/pgsql-9.5/bin/repmgr -f /var/lib/pgsql/repmgr/repmgr.conf standby register --force"