Linux 패키지 설치를 위한 PostgreSQL 복제 및 장애 조치
Patroni, PgBouncer, Consul을 사용하여 Linux 패키지 설치에서 PostgreSQL 복제 및 자동 장애 조치를 설정합니다.
GitLab Self-Managed Free 사용자라면 클라우드 호스팅 솔루션 사용을 고려하세요. 이 문서는 소스 컴파일 설치를 다루지 않습니다. 복제 및 장애 조치 설정이 원하던 것이 아니라면, Linux 패키지의 데이터베이스 구성 문서 를 참조하세요. GitLab에서 복제 및 장애 조치와 함께 PostgreSQL을 구성하기 전에 이 문서를 완전히 읽는 것을 권장합니다. 운영 체제 업그레이드 # 다른 운영 체제를 가진 시스템으로 장애 조치를 수행하는 경우, PostgreSQL 운영 체제 업그레이드 문서 를 읽으세요. 운영 체제 업그레이드 시 로컬 변경 사항을 고려하지 않으면 데이터 손상이 발생할 수 있습니다. 아키텍처 # 복제 장애 조치가 포함된 PostgreSQL 클러스터에 대한 Linux 패키지 권장 구성에는 다음이 필요합니다: 최소 세 개의 PostgreSQL 노드 최소 세 개의 Consul 서버 노드 기본 데이터베이스 읽기 및 쓰기를 추적하고 처리하는 최소 세 개의 PgBouncer 노드 PgBouncer 노드 간 요청을 분산하는 내부 로드 밸런서(TCP) 데이터베이스 로드 밸런싱 활성화 각 PostgreSQL 노드에 구성된 로컬 PgBouncer 서비스. 이는 기본 노드를 추적하는 메인 PgBouncer 클러스터와는 별개입니다. PlantUML 다이어그램 (37줄) 소스 코드 보기 @startuml card "**Internal Load Balancer**" as ilb #9370DB skinparam linetype ortho together { collections " GitLab Rails x3" as gitlab #32CD32 collections " Sidekiq x4" as sidekiq #ff8dd1 } collections " Consul x3" as consul #e76a9b card "Database" as database { collections " PGBouncer x3 \n//Consul//" as pgbouncer #4EA7FF card " PostgreSQL //Primary//\n//Patroni//\n//PgBouncer//\n//Consul//" as postgres_primary #4EA7FF collections " PostgreSQL //Secondary// x2 \n//Patroni//\n//PgBouncer//\n//Consul//" as postgres_secondary #4EA7FF pgbouncer -[#4EA7FF]-> postgres_primary postgres_primary .[#4EA7FF]r-> postgres_secondary } gitlab -[#32CD32]-> ilb gitlab -[hidden]-> pgbouncer gitlab .[#32CD32,norank]-> postgres_primary gitlab .[#32CD32,norank]-> postgres_secondary sidekiq -[#ff8dd1]-> ilb sidekiq -[hidden]-> pgbo
