Можно ли понизить уровень главного узла без использования резервного клона repmgr и pg_rewind

В настоящее время я использую postgresql с репликацией доставки журнала. Я использую главный/подчиненный ресурс кардиостимулятора для обработки отказоустойчивости postgresql.

Я спрашивал, есть ли способ понизить мастер, установить его в качестве резервного и поддерживать синхронизацию без использования «резервного клона repmgr» и pg_rewind.

На самом деле, я хочу, чтобы старый мастер был быстро готов вернуться в состояние мастера, а для восстановления резервного клона repmgr требуется несколько минут, что слишком долго.

Я вижу, что можно использовать pg_rewind для более быстрой синхронизации, но это подразумевает включение wal_log_hints, и я боюсь, что эта опция снизит производительность мастера. Мастер уже слишком занят.

Я пытаюсь просто записать recovery.conf в каталог данных, мастер хорошо перешел в режим слейва, однако у него нет восходящего потока:

[root@bkm-01 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

Я хочу, чтобы это было достаточно ясно, я на самом деле новичок в репликации базы данных. Любая помощь будет оценена по достоинству.


person moonbossa    schedule 10.03.2017    source источник


Ответы (1)


Я нашел решение самостоятельно. На самом деле бывший мастер просто должен быть зарегистрирован после понижения в должности. --force следует использовать, если узел был ранее зарегистрирован.

[root@node-01 ] su - postgres -c "/usr/pgsql-9.5/bin/repmgr -f /var/lib/pgsql/repmgr/repmgr.conf standby register --force"
person moonbossa    schedule 14.03.2017