Можно ли демонтировать главный узел, не используя "repmgr standby clone" и pg_rewind?
В настоящее время я использую postgresql с репликацией доставки журналов. Я использую ресурс master/slave для кардиостимулятора, чтобы справиться с отработкой отказа postgresql.
Я спрашивал, есть ли способ понизить мастер, установить его в режим ожидания и поддерживать синхронизацию без использования "repmgr standby clone" или 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
Я хотел бы, чтобы это было достаточно ясно, я на самом деле новичок в репликации базы данных. Любая помощь будет оценена.
1 ответ
Я нашел решение сам. На самом деле бывший мастер просто необходимо зарегистрироваться после того, как был понижен в должности. --force следует использовать, если узел был ранее зарегистрирован.
[root@node-01 ] su - postgres -c "/usr/pgsql-9.5/bin/repmgr -f /var/lib/pgsql/repmgr/repmgr.conf standby register --force"