가입자 노드가 게시자 노드가 줄어든 경우에도 게시자 노드에서 데이터를 계속 젠 토토 할 수 있도록하기 위해 게시자 노드에 해당하는 물리적 대기가 있어야합니다. 구독에 해당하는 기본 서버의 논리 슬롯을 지정하여 대기 서버와 동기화 할 수 있습니다failover = true
구독을 만들 때. 보다섹션 47.2.3자세한 내용. 활성화Failover
매개 변수는 대기가 홍보 된 후 해당 구독의 원활한 전환을 보장합니다. 그들은 새로운 기본 서버에서 출판물을 계속 구독 할 수 있습니다.
슬롯 동기화 로직이 비동기로 복사되므로 장애 조치가 발생하기 전에 젠 토토 슬롯이 대기 서버에 동기화되었음을 확인해야합니다. 성공적인 장애 조치를 보장하려면 대기 서버가 가입자보다 앞서 있어야합니다. 이것은 구성하여 달성 할 수 있습니다synchronized_standby_slots
.
대기 서버가 실제로 장애 조치 준비가되었는지 확인하려면 다음 단계를 따라 필요한 모든 논리적 복제 슬롯이 대기 서버와 동기화되었는지 확인하십시오.
가입자 노드에서 다음 SQL을 사용하여 홍보하려는 대기와 동기화 해야하는 복제 슬롯을 식별하십시오. 이 쿼리는 장애 조치 지원 구독과 관련된 관련 복제 슬롯을 반환합니다.
test_sub =# 선택 Array_agg (QUOTE_LITERAL (S.SUBSLOTNAME)) 슬롯으로 pg_subscription s에서 S.Subfailover 및 s.subslotname은 null이 아닙니다. 슬롯 ------- 'sub1', 'sub2', 'sub3'
가입자 노드에서 다음 SQL을 사용하여 홍보 할 대기와 동기화 해야하는 테이블 동기화 슬롯을 식별하십시오. 이 쿼리는 Failover 지원 구독이 포함 된 각 데이터베이스에서 실행해야합니다. 테이블 동기 슬롯은 테이블 사본이 완료된 경우에만 대기 서버에 동기화해야합니다 (참조범퍼카 토토 : 문서 : 17 : 51.55. pg_subscription_rel). 테이블 동기 슬롯이 새로운 기본 서버에서 삭제되거나 다시 제작 될 것이므로 다른 시나리오에서 테이블 동기 슬롯이 동기화 될 필요가 없습니다..
test_sub =# 선택 Array_agg (quote_literal (slot_name)) 슬롯으로 에서 ( slot_name으로 concat ( 'pg_', srsubid, '_sync_', srrelid, '_', ctl.system_identifier)를 선택하십시오 PG_CONTROL_SYSTEM () CTL, PG_SUBSCRIPTION_REL R, PG_SUBSCRIPTION S에서 여기서 r.srsubstate = 'f'및 s.oid = r.srsubid 및 s.subfailover ); 슬롯 ------- 'PG_16394_SYNC_16385_739466715149055164'
위에서 식별 된 논리적 젠 토토 슬롯이 대기 서버에 존재하고 장애 조치 준비가되었는지 확인하십시오.
test_standby =# slot_name, (일시적이지 않아 상충되지 않음) SLOT_NAME를 선택하십시오. pg_replication_slots에서 slot_name이있는 곳 ( 'sub1', 'sub2', 'sub3', 'pg_16394_sync_16385_739466715149055164'); slot_name | failover_ready --------------------------------------------------------------- sub1 | 티 Sub2 | 티 Sub3 | 티 PG_16394_SYNC_16385_739466715149055164 | 티 (4 줄)
모든 슬롯이 대기 서버에 존재하는 경우 결과 (failover_ready
) 위의 SQL 쿼리의 사실은 사실입니다. 그러면 기존 구독은 새로운 기본 서버에서 지금 출판물을 계속 구독 할 수 있습니다.
문서에 올바른 것이 없으면 일치하지 않습니다. 특정 기능에 대한 귀하의 경험 또는 추가 설명이 필요합니다. 사용이 양식문서 문제를보고하려면