Невозможно удалить БД с помощью repmgr
Я использую repmgr и успешно переключился на резервный узел. Однако, когда я попытался восстановить неисправный мастер-узел, я обнаружил, что у меня есть два мастер-узла.
Я попытался повторно зарегистрировать резервный узел как резервный. Но я обнаружил, что когда repmgr проверяет режим узла, он обнаруживает, что он находится в режиме восстановления и не позволяет его.
repmgr -f /var/lib/pgsql/repmgr/repmgr.conf cluster show
=> Role | Connection String
* master | host=<IP Address> user=repmgr dbname=my_db
* master | host=<IP Address> user=repmgr dbname=my_db
Узел 1
repmgr -f /var/lib/pgsql/repmgr/repmgr.conf --verbose master register --force
=> Opening configuration file: /var/lib/pgsql/repmgr/repmgr.conf
repmgr connecting to master database
repmgr connected to master, checking its state
finding node list for cluster 'my_cluster'
checking role of cluster node 'host=<IP Address> user=repmgr dbname=my_db'
There is a master already in cluster my_cluster
Node 2
============
repmgr -f /var/lib/pgsql/repmgr/repmgr.conf standby clone -h <master Node IP> --force
=> repmgr: directory "." exists but is not empty
Любой совет будет принят во внимание.
1 ответ
Хитрость заключается в том, чтобы отключить демон postgres на сервере, который вы хотите удалить. Вам не нужно снова включать его, пока вы не завершите клон, к тому времени cluster show
покажет, что старый мастер был успешно понижен в должности.
В зависимости от вашей логики пула соединений, вы, вероятно, захотите, чтобы старый мастер был выключен на всякий случай, если что-то записывается в него, а затем теряется во время клонирования.