Не удалось понизить БД с помощью 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

Любой совет будет принят во внимание.


person pvawser    schedule 16.03.2014    source источник
comment
Ok. Я вроде решил свою проблему. То, что я сделал, было на узле 2, я убил все процессы postgres. Я остановился и запустил службу postgres на узле 1 (вероятно, не нужно было этого делать). Затем я запустил службу postgresql на узле 2 и выполнил команду: sudo repmgr -f /var/lib/pgsql/repmgr/repmgr.conf --verbose standby register --force Теперь, когда я запускаю repmgr -f /var/lib/pgsql/repmgr/repmgr.conf cluster show, у меня есть главный и резервный узлы, как я и ожидал.   -  person pvawser    schedule 17.03.2014


Ответы (1)


Хитрость заключается в том, чтобы отключить демон postgres на сервере, который вы хотите понизить. Вам не нужно снова включать его, пока вы не завершите клонирование, к тому времени cluster show покажет, что старый мастер был успешно понижен.

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

person tommed    schedule 04.09.2014
comment
Спасибо, это проясняет мою голову. Теперь работает ровно. - person pvawser; 19.01.2015