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을 재구성 합니다. 복제본 재초기화 # 복제본이 시작되거나 클러스터에 재참여할 수 없거나, 뒤처지고 따라잡을 수 없는 경우 복제본을 재초기화해야 할 수 있습니다: 복제 상태를 확인 하여 어떤 서버를 재초기화해야 하는지 확인합니다. 예를 들어: + Cluster: postgresql-ha (6970678148837286213) ------+---------+--------------+----+-----------+ | Member | Host | Role | State | TL | Lag in MB | +-------------------------------------+--------------+---------+--------