2011-01-13 5 views
0

레일 앱 등이있는 2 개 이상의 웹 서버에서 pgpool을 실행하려고합니다. 아이디어는 slony 또는 스트리밍을 통한 복제와 pgpool을 통한 페일 오버를 수행하는 것입니다. replca와 웹 서버 연결이 풀링 된 쿼리를 사용하는 것도 좋지만 master_slave 및 failover 작업을 얻는 것이 중요합니다.master_slave 모드에서 pgpool을 백엔드에 대해 인증하지 못했습니다.

우분투 10.04 LTS의 apt 패키지에서 pgpool 버전 ​​3.4.1 (lainihi)을 설치했습니다. db01은 마스터이며 slony를 통해 db02에 복제됩니다. 내 pgpool.conf는 다음과 같습니다 :

# configure frontend 
listen_addresses = 'localhost' 
port = 5432 

# configure the backends 
backend_host_name = 'db01' 
backend_port = 5432 
secondary_backend_host_name = 'db02' 
secondary_backend_port = 5432 

# uncomment this and pgpool fails to connect 
#master_slave_mode = true 
#master_slave_sub_mode = 'slony' 

지금 "원시 모드"에서 작동하며 master_slave를 많이 사용하게 될지 궁금합니다. 는 IT가 pgpool처럼 보인다

2011-01-13 02:03:17 DEBUG: pid 24144: I am 24144 accept fd 6 
2011-01-13 02:03:17 DEBUG: pid 24144: Protocol Major: 1234 Minor: 5679 database: user: 
2011-01-13 02:03:17 DEBUG: pid 24144: SSLRequest: sent N; retry startup 
2011-01-13 02:03:17 DEBUG: pid 24144: Protocol Major: 3 Minor: 0 database: XXX user: XXX 
2011-01-13 02:03:17 DEBUG: pid 24147: I am 24147 accept fd 6 
2011-01-13 02:03:17 DEBUG: pid 24147: Protocol Major: 3 Minor: 0 database: XXX user: XXX 
2011-01-13 02:03:17 DEBUG: pid 24144: pool_read_message_length: lenghth: 12 
2011-01-13 02:03:17 DEBUG: pid 24144: trying md5 authentication 
2011-01-13 02:03:17 DEBUG: pid 24144: master: 1 salt: 8bcce867 
2011-01-13 02:03:17 DEBUG: pid 24147: pool_read_message_length: lenghth: 12 
2011-01-13 02:03:17 DEBUG: pid 24147: trying md5 authentication 
2011-01-13 02:03:17 DEBUG: pid 24147: master: 1 salt: bb5f7a63 
2011-01-13 02:03:17 DEBUG: pid 24144: master: 0 salt: 5abb8e55 
2011-01-13 02:03:17 DEBUG: pid 24144: do_md5: backend does not return R while processing MD5 authentication E 
2011-01-13 02:03:17 ERROR: pid 24144: pool_do_auth: backend does not return authenticaton ok 
2011-01-13 02:03:17 DEBUG: pid 24147: master: 0 salt: 4c1e5953 
2011-01-13 02:03:17 DEBUG: pid 24147: do_md5: backend does not return R while processing MD5 authentication E 
2011-01-13 02:03:17 ERROR: pid 24147: pool_do_auth: backend does not return authenticaton ok 

백엔드 인증 할 수 없습니다 다음 내가 보는 pgpool 로그에

# psql -h localhost -U XXX -W 
Password for user XXX: 
psql: server closed the connection unexpectedly 
    This probably means the server terminated abnormally 
    before or while processing the request. 

하지만, I : 나는 master_slave의 주석 어쨌든 경우 = 사실 나는 연결할 때 folling를 얻을 수 psql을 사용하여 각 클라이언트의 각 백엔드 서버에 연결할 수 있으며 pgpool은 "원시 모드"로 작동합니다.

pgpool을 구성하는 데 도움을 주시면 매우 감사하겠습니다. 훌륭한 솔루션 인 것처럼 보이지만 설정하는 것은 예상보다 어려웠습니다.

TIA,

답변

1

데니스 마지막으로이에게 자신을 해결했다. 이 문제는 pgpools의 이상한 버전 관리와 apt에서 설치하는 것에 기인합니다.

첫 번째 부분은 pgpool이 pgpool에서 pgpool-II로 주요 버전을 전환한다는 것입니다. pgpool-II는 포크 나 호환되지 않는 형제가 아니지만 나중에 더 많은 기능을 갖춘 "point oh"버전입니다. pgpool의 최신 버전은 3.4.1이고 pgpool-II의 최신 버전은 3.0.1입니다. 주의 깊게 보지 않는다면 pgpool 3.4.1> pgool-II 3.0.1이라고 생각할 수도 있지만 그렇지 않습니다.

두 번째 부분은 우분투 (아마 데비안도 마찬가지 임)는 위의 pgpool과 pgpool2에 대해 두 개의 apt 패키지가 있다는 것입니다. 물론 pgpool2는 pgpool-II입니다. pgpool을 설치 한 사람들이 pgpool2 패키지가 있다는 것을 알 수 있도록 패키지에서 "see also"라고 말하는 방법이 있다면 좋을 것입니다.

일단 내가 pgpool-II 소스를 얻었고 (apt 패키지에서 활성화되지 않은 SSL을 활성화하여) 자신을 컴파일하면 마스터 - 슬레이브 스위치가 보급 된대로 작동합니다.

관련 문제