PostgreSQL 장애 조치 및 복제


14

PostgreSQL 9.1을 평가 중이며 장애 조치 및 복제 세부 정보와 관련된 몇 가지 질문이 있습니다.

테스트 시나리오가 거의 없습니다. 마스터 서버와 슬레이브가 적은 첫 번째 서버. Master가 충돌 할 경우 Slaves 중 하나가 Master가되기를 원합니다. 마스터가 정상 상태로 돌아간 후에는 클러스터의 다른 서버와 동기화되고 (중지 된 동안 수행 된 모든 변경 사항을 적용 함) 마스터 역할을 다시 청구하거나 슬레이브가됩니다.

PostgreSQL과 현재 시나리오에서 볼 수있는 문제는 다음과 같습니다.

1) 마스터 서버 중단을 감지하기위한 기본 제공 도구가 표시되지 않습니다. 나는 pgpool이 그것을 처리하고 트리거 파일을 만들 수 있다는 것을 읽었으며 사람들이 이것을 위해 Linux 하트 비트 또는 유사한 도구를 사용한다는 것을 읽었습니다. 이제 장애 조치를 감지하고 클러스터에서 새 마스터를 할당 할 수 있습니다. 다른 노예들은 새로운 스승이 있다는 것을 알고 지금 그것을 백업해야합니까?

2) 장애 복구 절차를 이해하지 못합니다. 마스터 및 슬레이브 호스트 구성이 다릅니다. 마스터 장애 복구 후 두 개의 마스터가 있습니까? 서버는 어떻게 다시 동기화됩니까? "데이터 폴더를 서버로 전송하고 다시 시작"과 같은 수동 솔루션 만 보았습니다. 그렇다면 해결책이나 모범 사례 또는 적어도 주요 원칙은 무엇입니까?

3) 클라이언트 측에서 서버 중단을 어떻게 처리해야합니까? 연결을 만들 때 서버 IP를 명시 적으로 지정합니다. 마스터-슬레이브 구조를 알고, 요청을 마스터에게만 보내고 연결이 끊어진 경우 백업 서버 등으로 전환되는 일종의 ConnectionManager를 개발해야합니까? pgpool은 응용 프로그램의 진입 점이 될 수 있으며 올바른 방식으로 연결을 관리합니다. pgpool이 유일한 해결책입니까? 장애 조치 및 장애 복구를 잘 처리합니까?

4) 수동으로 데이터를 복사하거나 PostgreSQL 인스턴스 및 기타 수동으로 재구성 해야하는 것을 피할 수있는 솔루션 (상업적 솔루션)이 있습니까? 모든 사람이 동기화 할 때 클러스터 구성의 종류에 따라 누가 마스터이고 모든 것이 운영자의주의없이 자동으로 전환되는지가 확실합니까?

이 스레드와 기사에 따르면

PostgreSQL에서 스트리밍 복제 및 장애 조치

PostgreSQL 9.1에서 장애 조치 자동화

http://denishjpatel.blogspot.com/2010/11/possibility-of-graceful-switchover.html

이러한 질문을 해결할 수있는 완전 자동 솔루션은 없습니다. 내가 맞아?

감사!


아마도 관련 9.2 문서를 가리킬 가치가 있습니다.
Mike Sherrill 'Cat Recall'3

답변:


4
  1. 노예들은 새로운 주인을 이해하지 못할 것입니다. 수동으로해야합니다.
  2. 예, 서로 다르므로 이전 마스터에 대해 새 마스터를 작성해야하지만 이전 대기는 마스터로 계속 작동하지만 해당 노드에 max_wal_senders를 설정해야합니다. 장애 조치 후 새 마스터의 pg_hba.conf도 설정해야합니다. 장애 조치 후 (노드가 역할 마스터-> 슬레이브 슬레이브-> 마스터를 변경할 때) 새 wal 파일을 recovery.conf 파일에서 설정 한 새 대기 폴더 데이터 디렉토리로 전송해야합니다. 또는 단순히 rsync를 사용할 수 있습니다.

  3. pgbouncer를 사용할 수 있습니다. 이 방법으로 pgbouncer 서버 주소를 새 마스터로 변경하면됩니다.

  4. EnterpriseDB에는 몇 가지 상용 도구가 있습니다. 당신이 그들을 확인할 수 있습니다.

그리고 마지막으로 그렇습니다. 이러한 질문을 해결할 수있는 완전 자동 솔루션은 없습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.