Ошибка repmgr: перед настройкой подчиненного устройства необходимо определить ведущее устройство.

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

Я использую версию repmgr 2.0beta1 (PostgreSQL 9.3.2). ОС: Ubuntu 14.04 LTS

При регистрации резервного узла.

$ repmgr -f /etc/repmgr/repmgr.conf --verbose standby register
Opening configuration file: /etc/repmgr/repmgr.conf
[2015-03-31 11:43:19] [WARNING] pg_bindir//usr/lib/postgresql/9.3/bin: Unknown name/value pair!
[2015-03-31 11:43:19] [INFO] repmgr connecting to standby database
[2015-03-31 11:43:19] [INFO] repmgr connected to standby, checking its state
[2015-03-31 11:43:19] [INFO] repmgr connecting to master database
[2015-03-31 11:43:19] [INFO] finding node list for cluster 'test'
[2015-03-31 11:43:19] [INFO] checking role of cluster node 'host=127.0.0.1 user=repmgr_usr dbname=repmgr_db'
[2015-03-31 11:43:19] [ERROR] A master must be defined before configuring a slave

Получил эту ошибку.

В резервном журнале Postgres: (с log_connections=on, log_disconnections=on)

$ tail -f /var/log/postgresql/postgresql-9.3-main.log
2015-03-31 11:38:51 IST LOG:  disconnection: session time: 0:00:00.011 user=repmgr_usr database=repmgr_db host=127.0.0.1 port=53055
2015-03-31 11:38:51 IST LOG:  could not receive data from client: Connection reset by peer
2015-03-31 11:38:51 IST LOG:  disconnection: session time: 0:00:00.029 user=repmgr_usr database=repmgr_db host=127.0.0.1 port=53054
2015-03-31 11:43:19 IST LOG:  connection received: host=127.0.0.1 port=53061
2015-03-31 11:43:19 IST LOG:  connection authorized: user=repmgr_usr database=repmgr_db
2015-03-31 11:43:19 IST LOG:  connection received: host=127.0.0.1 port=53062
2015-03-31 11:43:19 IST LOG:  connection authorized: user=repmgr_usr database=repmgr_db
2015-03-31 11:43:19 IST LOG:  disconnection: session time: 0:00:00.008 user=repmgr_usr database=repmgr_db host=127.0.0.1 port=53062
2015-03-31 11:43:19 IST LOG:  could not receive data from client: Connection reset by peer
2015-03-31 11:43:19 IST LOG:  disconnection: session time: 0:00:00.025 user=repmgr_usr database=repmgr_db host=127.0.0.1 port=53061

У меня в ЖУРНАЛЕ ошибка "Не удалось получить данные от клиента: соединение сброшено узлом"

В главном журнале Postgres: (с log_connections=on, log_disconnections=on)

$tail -f /var/log/postgresql/postgresql-9.3-main.log
2015-03-31 11:25:18 IST LOG:  connection authorized: user=postgres database=postgres
2015-03-31 11:25:18 IST LOG:  disconnection: session time: 0:00:00.010 user=postgres database=postgres host=[local]
2015-03-31 11:25:19 IST LOG:  connection received: host=[local]
2015-03-31 11:25:19 IST LOG:  connection authorized: user=postgres database=postgres
2015-03-31 11:25:19 IST LOG:  disconnection: session time: 0:00:00.002 user=postgres database=postgres host=[local]
2015-03-31 11:25:19 IST LOG:  connection received: host=[local]
2015-03-31 11:25:19 IST LOG:  connection authorized: user=postgres database=postgres
2015-03-31 11:25:19 IST LOG:  disconnection: session time: 0:00:00.002 user=postgres database=postgres host=[local]
2015-03-31 11:26:14 IST LOG:  connection received: host=192.168.1.218 port=40381
2015-03-31 11:26:14 IST LOG:  replication connection authorized: user=repmgr_usr

Я думаю, в этом журнале нет подробностей о резервном соединении. (не уверен, потому что не знаю)

Мастер repmgr.conf:

cluster=test
node=1
node_name=node1
conninfo='host=127.0.0.1 user=repmgr_usr dbname=repmgr_db'
pg_bindir=/usr/lib/postgresql/9.3/bin

Резервный repmgr.conf

cluster=test
node=2
node_name=node2
conninfo='host=localhost user=repmgr_usr dbname=repmgr_db'
pg_bindir='/usr/lib/postgresql/9.3/bin'

главный и резервный postgres.conf

listen_addresses='*'
wal_level = 'hot_standby'
archive_mode = on
archive_command = 'cd .'       
max_wal_senders = 10
wal_keep_segments = 5000    
hot_standby = on
log_connections = on
log_disconnections = on

главный и резервный pg_hba.conf

host    repmgr_db       repmgr_usr  192.168.1.0/24         trust
host    replication     repmgr_usr  192.168.1.0/24         trust
host    repmgr_db       repmgr_usr  127.0.0.1/24         trust
host    replication     repmgr_usr  127.0.0.1/24         trust

Сведения о кластере в резервном узле:

$ repmgr -f /etc/repmgr/repmgr.conf cluster show
[2015-03-31 12:06:17] [WARNING] pg_bindir//usr/lib/postgresql/9.3/bin: Unknown name/value pair!
Role      | Connection String 
  standby | host=127.0.0.1 user=repmgr_usr dbname=repmgr_db

Сведения о кластере в главном узле:

$ repmgr -f /etc/repmgr/repmgr.conf cluster show
[2015-03-31 12:07:46] [WARNING] pg_bindir//usr/lib/postgresql/9.3/bin: Unknown name/value pair!
Role      | Connection String 
* master  | host=127.0.0.1 user=repmgr_usr dbname=repmgr_db

Пожалуйста, помогите мне в этом вопросе.


person Rajiv    schedule 31.03.2015    source источник
comment
бета1? Пожалуйста, обновитесь до последней версии (2.0.2) или хотя бы до стабильной версии. Начиная с бета-версии 1, было исправлено множество ошибок.   -  person Frank Heikens    schedule 31.03.2015
comment
Да, пробовал в repmgr 2.0 (PostgreSQL 9.3.5). Тоже такая же ошибка. До этого все нормально.   -  person Rajiv    schedule 31.03.2015
comment
Привет, у меня такая же проблема. Я не хочу дублировать один и тот же вопрос. Вы нашли какое-нибудь решение?   -  person Yavuz Selim    schedule 06.09.2016
comment
@yavuzs Пожалуйста, найдите мое решение ниже. Если не работает, дайте мне знать.   -  person Rajiv    schedule 14.09.2016


Ответы (1)


Наконец, я решил это, изменив файл repmgr.conf. я изменил

conninfo='host=localhost user=repmgr_usr dbname=repmgr_db'

с

conninfo='host=192.168.1.205 user=repmgr_usr dbname=repmgr_db'

т. е. В файле конфигурации мы должны указать IP-адрес или имя, разрешенное кластером.

person Rajiv    schedule 02.04.2015