이 항목에서는 버전 9.0.0 이상을 실행하는 장치의 데이터베이스 페일오버 기능에 대해 설명합니다. 해당 장치의 페일오버는 서비스 제공자 장치가 예기치 않게 종료되어 수동 프로세스가 필요한 경우를 제외하고 완전히 자동화되어 있습니다.

참고: 이 항목은 버전 9.0.0 이상을 실행하는 장치에만 적용됩니다. 이전 장치와 관련된 내용은 데이터베이스 페일오버 - 레거시 장치를 참조하십시오.

자동화된 페일오버

자동화된 페일오버 기능에는 다음이 포함됩니다.
  • 단일 데이터 소스 연결 - 이제 모든 장치가 새 pgbouncer 서비스를 통해 프록시되는 단일 데이터 소스 연결을 사용합니다. pgbouncer는 장치 서비스에서 사용할 단일 연결 지점을 제공하면서 기본 postgres 데이터베이스에 대한 연결을 유지하는 연결 풀러입니다. 이 서비스는 모든 페일오버 및 기본 마이그레이션도 처리합니다. 새 기본 데이터베이스를 가리키도록 자동으로 업데이트되므로 기본 간에 원활한 전환이 가능합니다.
  • 장치 종료 또는 다시 시작 시 기본 데이터베이스의 제어된 전환 - 게스트가 시작한 현재 기본 데이터베이스의 종료 또는 다시 시작 과정에서 기본 역할이 제어된 방식으로 HA 쌍의 다른 장치로 마이그레이션됩니다. 이 때문에 장치 작동에 사소한 중단만 발생하며, 주로 Blast(웹) 포털을 통한 데스크톱 연결에 영향을 미칩니다. Horizon Client를 통해 생성된 데스크톱 연결은 영향을 받지 않습니다. horizonadmin을 사용할 수 없는 짧은 기간도 있으며, 전환 중에 데스크톱 연결을 요청하는 사용자에게는 사용 가능한 데스크톱이 없다는 오류가 표시될 수 있습니다(하지만 잠시 후에 다시 시도하면 데스크톱에 연결할 수 있음).
  • 테넌트 장치에서 예기치 않은 장애가 발생할 경우 기본 데이터베이스 자동 페일오버 - 이제 기본 장애가 자동으로 감지되고, 장치가 실제로 다운되었는지 확인하라는 요청이 서비스 제공자 장치에 전송됩니다. 3분 지연 후에 페일오버 프로세스가 시작됩니다. 이 새로운 페일오버 프로세스는 과거의 페일오버 프로세스보다 덜 강제적이며, 이후에 slony 클러스터가 정상적인 복제 상태로 유지되므로 페일오버가 완료된 후 slony를 다시 초기화하지 않아도 됩니다.
아래에서는 해당 기능을 지원하는 서비스에 대해 설명합니다.
서비스 설명 로그 위치 메모
Pgbouncer 플랫폼 서비스와 postgres 간의 데이터베이스 연결을 브로커링하는 연결 풀러입니다. /var/log/pgbouncer/
  • 이제 psql 명령을 사용한 postgres 연결이 기본적으로 pgbouncer를 통과하며, 사용하는 장치에 관계없이 기본 데이터베이스에 연결됩니다. 특정 데이터베이스 인스턴스에 연결하려면 psql과 함께 -h 및 -p 플래그를 사용합니다. postgres에 직접 연결하려면 포트 6432도 지정해야 합니다. 예:
    psql -U admin -h ‹Appliance_IP› -p 6432 fdb
  • /etc/pgbouncer/pgbouncer.ini의 pgbouncer 구성을 검사하여 올바른 장치를 가리키고 있는지 확인할 수 있습니다. 파일 상단에 있는 연결 문자열이 현재 slony 기본을 가리켜야 합니다. 그렇지 않은 경우, 장치를 다시 시작하면 대체로 문제가 해결됩니다.
Dbmonitor 다음을 수행하는 모니터링 서비스입니다.
  • 기본 장애를 감지하고 새 페일오버 프로세스를 시작합니다.
  • 제어된 전환이나 다시 구독으로 인한 slony 기본 노드 변경 사항을 감지하고, 그에 따라 새 기본 주소로 pgbouncer를 업데이트합니다.
/var/log/dbmonitor/
Switchover 종료 시 스크립트가 실행되어 전환 작업을 수행합니다. /var/log/desktone/slony-services
Resubscribe 시작 시 스크립트가 실행되어 다시 구독 작업을 수행합니다. /var/log/desktone/slony-services

서비스 제공자 장치의 수동 페일오버

서비스 제공자 장치가 예기치 않게 종료된 경우, 다른 서비스 제공자 장치에서 아래 단계를 수행하여 수동 페일오버를 수행할 수 있습니다.
  1. failover-slony-마스터 스크립트(/usr/local/desktone/scripts/에 있음)를 루트로 실행합니다.
    failover-slony-master <database type> '<database password>'
    여기서 <database type>은 fdb, edb 또는 avdb입니다.
  2. pgbouncer.ini 파일이 현재 장치의 프런트엔드 IP 주소를 가리키고 있는지 확인합니다.
    /usr/local/desktone/scripts# grep '<IP address>' /etc/pgbouncer/pgbouncer.ini
  3. pgbouncer 서비스를 다시 로드합니다.
    service pgbouncer reload
  4. slony-status를 실행하여 기본 상태와 복제를 확인합니다.
    /usr/local/desktone/scripts# slony-status <org #>