2014-11-25 3 views
0

마스터 복제되는 설정 및 certifiably 기능을 마스터 기록, 필요 그렇지 않으면, 사용자 슬레이브에서 마스터로 작업을 쓰기 직접 다시 할 수있을 것입니다 :PostgreSQL의 마스터 - 슬레이브 복제 리디렉션이

PG::ReadOnlySqlTransaction: ERROR: cannot execute UPDATE in a read-only transaction 

MS 복제에 대한 나의 이해가 근본적으로 떨어져있을 수 있습니다 ... 그러나 마스터 서버에 쓰기를 지시하는 매개 변수를 찾지 못한 채, 각 postgresql.conf 파일에 정의 된 기본 기능의 일부라고 가정했습니다.

업데이트/생성을 슬레이브가 마스터에 전달하는 방법은 무엇입니까?

답변

1

수 없습니다! PostgreSQL의 노드를 마스터하기 위해 쓰기를 리디렉션 할 수있는 능력을 가지고 있지 않으며, 따라서 슬레이브는 읽기 전용 트랜잭션을 받아 들일 것입니다.

마스터와 슬레이브간에 읽기 전용 명령문의로드 밸런싱을 수행 할 수있는 미들웨어 역할을하지만 쓰기 명령/트랜잭션을 마스터로 재지 정하는 도구는 PgPool-II입니다. 당신이 (예를 들어, 서로 다른 데이터 소스를 통해) 구별하기 위해 응용 프로그램을 만들 수있는 경우 읽기 전용 및 읽기 - 쓰기 트랜잭션 성능 그래도 더 좋을 것입니다 그리고 당신은 읽기 전용 TCP 부하 분산 장치로 리디렉션 할 수 있습니다.

+0

예. 의미가 => 쓰기 기능은 주어진 노예에 대한 개별 모델에 기인 할 수있다과 PostgreSQL이 그것을 알 방법이 없습니다 것처럼. – Jerome