Linux 패키지 설치에서 PostgreSQL 복제 및 장애 조치 문제 해결
Linux 패키지 설치에서 PostgreSQL 복제 및 장애 조치 문제 해결에 대해 설명합니다.
PostgreSQL 복제 및 장애 조치 작업 중 다음과 같은 문제가 발생할 수 있습니다. Consul 및 PostgreSQL 변경 사항이 적용되지 않는 경우 # 잠재적인 영향으로 인해 gitlab-ctl reconfigure 는 Consul 및 PostgreSQL을 다시 로드만 하고 서비스를 다시 시작하지 않습니다. 그러나 모든 변경 사항이 다시 로드로 활성화될 수는 없습니다. 서비스를 다시 시작하려면 gitlab-ctl restart SERVICE 를 실행합니다. PostgreSQL의 경우, 기본적으로 리더 노드를 다시 시작하는 것이 일반적으로 안전합니다. 자동 장애 조치는 기본적으로 1분 타임아웃입니다. 그 전에 데이터베이스가 반환되면 다른 작업이 필요하지 않습니다. Consul 서버 노드에서는 제어된 방식으로 Consul 서비스를 다시 시작 하는 것이 중요합니다. PgBouncer 오류 ERROR: pgbouncer cannot connect to server # gitlab-rake gitlab:db:configure 를 실행할 때 이 오류가 발생하거나 PgBouncer 로그 파일에서 오류를 볼 수 있습니다. PG::ConnectionBad: ERROR: pgbouncer cannot connect to server 문제는 PgBouncer 노드의 IP 주소가 데이터베이스 노드의 /etc/gitlab/gitlab.rb 에 있는 trust_auth_cidr_addresses 설정에 포함되지 않았기 때문일 수 있습니다. 리더 데이터베이스 노드의 PostgreSQL 로그를 확인하여 이 문제임을 확인할 수 있습니다. 다음 오류가 표시되면 trust_auth_cidr_addresses 가 문제입니다. 2018-03-29_13:59:12.11776 FATAL: no pg_hba.conf entry for host "123.123.123.123", user "pgbouncer", database "gitlabhq_production", SSL off 문제를 해결하려면 /etc/gitlab/gitlab.rb 에 IP 주소를 추가합니다. postgresql[ 'trust_auth_cidr_addresses' ] = %w(123.123.123.123/32 <other_cidrs>) 변경 사항을 적용하려면 GitLab을 재구성 합니다. Patroni 전환 후 PgBouncer 노드가 장애 조치되지 않는 경우 # GitLab 16.5.0 이전 버전에 영향을 미치는 알려진 문제 로 인해, Patroni 전환 후 PgBouncer 노드의 자동 장애 조치가 발생하지 않습니다. 이 예시에서 GitLab은 일시 중지된 데이터베이스를 감지하지 못하고 일시 중지되지 않은 데이터베이스를 RESUME 하려고 시도했습니다: INFO -- : Running: gitlab-ctl pgb-notify --pg-database gitlabhq_production --newhost database7.example.com --user pgbouncer --hostuser
