Geo PostgreSQL 복제 문제 해결
Geo PostgreSQL 복제 문제 해결에 대해 설명합니다.
다음 섹션에서는 복제 오류 메시지를 수정하기 위한 문제 해결 단계를 설명합니다( geo:check 출력 에서 Database replication working? ... no 로 표시). 여기에 제시된 지침은 대부분 단일 노드 Geo Linux 패키지 배포를 가정하며 다른 환경에 맞게 조정이 필요할 수 있습니다. 비활성 복제 슬롯 제거 # 복제 슬롯에 연결된 복제 클라이언트(보조 사이트)가 연결을 끊으면 복제 슬롯이 '비활성'으로 표시됩니다. 비활성 복제 슬롯은 클라이언트가 다시 연결할 때 전송되고 슬롯이 다시 활성화되기 때문에 WAL 파일이 보존됩니다. 보조 사이트가 다시 연결할 수 없는 경우 다음 단계를 사용하여 해당 비활성 복제 슬롯을 제거합니다: Geo 기본 사이트의 데이터베이스 노드에서 PostgreSQL 콘솔 세션을 시작합니다 : sudo gitlab-psql -d gitlabhq_production [!note] 복제 슬롯 관리에는 슈퍼유저 권한이 필요하므로 gitlab-rails dbconsole 을 사용하는 것은 작동하지 않습니다. 복제 슬롯을 확인하고 비활성 상태인 경우 제거합니다: SELECT * FROM pg_replication_slots; active 가 f 인 슬롯은 비활성 상태입니다. 해당 슬롯을 사용하여 보조 사이트가 구성되어 있어서 이 슬롯이 활성화되어야 하는 경우: 보조 사이트의 PostgreSQL 로그 에서 복제가 실행되지 않는 이유를 확인합니다. 보조 사이트가 더 이상 다시 연결할 수 없는 경우: PostgreSQL 콘솔 세션을 사용하여 슬롯을 제거합니다: SELECT pg_drop_replication_slot( '<name_of_inactive_slot>' ); 복제 프로세스를 다시 시작 하면 복제 슬롯이 올바르게 재생성됩니다. 슬롯을 더 이상 사용하지 않는 경우(예: Geo가 더 이상 활성화되어 있지 않은 경우) 해당 Geo 사이트를 제거하는 단계 를 따르세요. 메시지: WARNING: oldest xmin is far in the past 및 pg_wal 크기 증가 # 복제 슬롯이 비활성 상태이면 해당 슬롯에 해당하는 pg_wal 로그가 영구적으로(또는 슬롯이 다시 활성화될 때까지) 보존됩니다. 이로 인해 디스크 사용량이 지속적으로 증가하고 다음 메시지가 PostgreSQL 로그 에 반복적으로 나타납니다: WARNING: oldest xmin is far in the past HINT: Close open transactions soon to avoid wraparound problems. You might also need to commit or roll back old prepared transactions, or drop stale replication slots. 이를 수정하려면 비활성 복제 슬롯을 제거 하고 복제를 다시 시작해야 합니다. 메시지: ERROR: replication slots can only be used if max_replication_slots > 0 ?
