마스터 서버에 연결할 수 없습니다: postgresql HA 설치

마스터 서버에 연결할 수 없습니다: postgresql HA 설치

세 개의 노드로 Postgresql-9.4 High Availability (HA)설치해 보세요 RHEL7. 세 노드 모두에서 그에 따라 설치 postgresql, 업데이트 postgresql.confpg_hba.conf파일을 설치합니다. 모든 설정을 완료한 후 마스터 서버에서 check 명령어를 이용하여 동기화된 스트리밍 복제를 검증해 보세요.

select * from pg_stat_replication;

그것은 돌아온다

postgres=# select * from pg_stat_replication;
 pid | usesysid | usename | application_name | client_addr | client_hostname | client_port | backend_start | backend_xmin | state | sent_location | write_
location | flush_location | replay_location | sync_priority | sync_state
-----+----------+---------+------------------+-------------+-----------------+-------------+---------------+--------------+-------+---------------+-------
---------+----------------+-----------------+---------------+------------
(0 rows)

이는 복사가 없음을 나타냅니다. postgresql 로그 파일을 살펴보니 대기 노드에서 기본 노드로의 연결이 설정되지 않은 것을 확인했습니다. 세 노드 모두의 로그 파일은 다음과 같습니다.

노드 0:

FATAL:  no pg_hba.conf entry for replication connection from host "x.x.x.x (node1)", user "postgres", SSL off
FATAL:  no pg_hba.conf entry for replication connection from host "x.x.x.x (node2)", user "postgres", SSL off

노드 1 및 노드 2:

FATAL:  could not connect to the primary server: 
FATAL:  no pg_hba.conf entry for replication connection from host "x.x.x.x (node0)", user "postgres", SSL off

연결을 확인하기 위해 세 노드 모두에서 iptables를 비활성화했습니다. 다른 모든 노드에서/로 ping이 가능하며, 슬레이브에서 마스터로의 텔넷은 잘 작동하지만, 마스터에서 슬레이브로의 텔넷은 작동하지 않습니다. 왜 이런 일이 발생하는지 잘 모르겠습니다(iptables 서비스가 중지되었음에도 불구하고).

답변1

마스터 노드(노드 0): 파일을 업데이트 pg_hba.conf하고 postgres데이터베이스에 대한 (사용자) 액세스를 추가합니다.

대기 노드(노드 1 및 노드 2): 기본 노드에 대한 연결을 허용하도록 비활성화 iptables하거나 구성합니다 .firewall

/etc/sysconfig/iptables에 다음 줄을 추가하고 재부팅합니다.

 -A INPUT -m state --state NEW -m tcp -p tcp --dport 5432(port) -j ACCEPT
 -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

이 솔루션은 내 문제를 해결했습니다.

관련 정보