토토 사이트 순위 디코딩은 데이터베이스 테이블의 모든 지속적인 변경 사항을 데이터베이스의 내부 상태에 대한 자세한 지식없이 해석 할 수있는 일관성 있고 이해하기 쉬운 형식으로 추출하는 과정입니다.
inPostgreSQL, 논리 디코딩은의 내용을 디코딩하여 구현됩니다.PostgreSQL: Tài liệu: 18: Chươ토토 캔 28. Độ tin cậy và nhật ký ghi lại는 스토리지 수준의 변경 사항을 튜플 스트림 또는 SQL 문과 같은 응용 프로그램 별 형태로 설명하는 10782_10908 |
토토 사이트 순위 복제의 맥락에서 슬롯은 원점 서버에서 작성된 순서대로 클라이언트에게 재생할 수있는 변경 스트림을 나타냅니다. 각 슬롯은 단일 데이터베이스에서 일련의 변경을 스트리밍합니다.
PostgreSQL스트리밍 복제 슬롯도 있습니다 (참조섹션 26.2.5)이지만 다소 다르게 사용됩니다.
복제 슬롯에는 a의 모든 데이터베이스에서 고유 한 식별자가 있습니다.PostgreSQL클러스터. 슬롯은 그것들을 사용하여 연결과 독립적으로 지속되며 충돌 안전입니다.
논리 슬롯은 정상 작동에서 각 변경을 한 번만 방출합니다. 각 슬롯의 현재 위치는 체크 포인트에서만 유지되므로 충돌의 경우 슬롯이 이전 LSN으로 돌아올 수 있으므로 서버가 다시 시작될 때 최근 변경 사항이 다시 전송됩니다. 논리적 디코딩 클라이언트는 동일한 메시지를 두 번 이상 처리하여 악영향을 미치지 않습니다. 클라이언트는 디코딩 할 때 본 마지막 LSN을 기록하고 반복 된 데이터를 건너 뛰거나 (복제 프로토콜을 사용할 때) 서버가 시작점을 결정하게하기보다는 해당 LSN에서 디코딩을 요청하도록 요청할 수 있습니다. 복제 진행 추적 기능은이 목적을 위해 설계되었습니다. 참조PostgreSQL : 문서 : 18 : 48 장. 롤 토토 진행 추적.
단일 데이터베이스에는 다중 독립 슬롯이 존재할 수 있습니다. 각 슬롯에는 자체 상태가있어 다른 소비자가 데이터베이스 변경 스트림에서 다른 지점에서 변경 사항을받을 수 있습니다. 대부분의 응용 분야의 경우 각 소비자에게 별도의 슬롯이 필요합니다.
토토 사이트 순위 복제 슬롯은 수신기의 상태에 대해 아무것도 모른다. 다른 시간에 동일한 슬롯을 사용하여 여러 다른 수신기를 가질 수도 있습니다. 마지막 수신기가 소비를 중단했을 때부터 변경 사항을 얻을 수 있습니다. 주어진 시간에 하나의 수신기 만 슬롯에서 변경 사항을 소비 할 수 있습니다.
토토 사이트 순위 복제 슬롯은 핫 스탠드에서도 생성 될 수 있습니다. 예방하려면진공
시스템 카탈로그에서 필요한 행을 제거하여hot_standby_feedback
대기에 설정해야합니다. 그럼에도 불구하고 필요한 행이 제거되면 슬롯이 무효화됩니다. 기본과 대기 사이의 물리적 슬롯을 사용하는 것이 좋습니다. 그렇지 않으면,hot_standby_feedback
연결이 살아있는 동안에 만 작동합니다 (예 : 노드 재시작은 파괴됩니다). 그런 다음 기본은 대기에서 논리적 디코딩에 필요한 시스템 카탈로그 행을 삭제할 수 있습니다 (.catalog_xmin
대기에서). 대기의 기존 논리 슬롯도 무효화됩니다.Wal_level
기본의 경우Logical
. 대기가 WAL 스트림의 변화를 감지하자마자 이루어집니다. 그것은 지연중인 Walsenders (있는 경우)의 경우 일부 WAL은까지 기록한다는 것을 의미합니다.Wal_level
기본의 매개 변수 변경은 디코딩되지 않습니다.
논리 슬롯 생성에는 현재 실행중인 모든 트랜잭션에 대한 정보가 필요합니다. 기본 에서이 정보는 직접 사용할 수 있지만 대기에서는이 정보를 기본에서 얻어야합니다. 따라서 슬롯 생성은 1 차에서 일부 활동이 발생할 때까지 기다려야 할 수도 있습니다. 기본이 유휴 상태이면 대기에 논리 슬롯을 작성하는 데 눈에 띄는 시간이 걸릴 수 있습니다. 이것은라고 호출하여 쏟아 질 수 있습니다.pg_log_standby_snapshot
기본의 함수.
복제 슬롯은 충돌 전반에 걸쳐 지속되며 소비자의 상태에 대해 아무것도 모릅니다. 연결이없는 경우에도 필요한 리소스의 제거를 방지합니다. 시스템 카탈로그에서 필요한 행이나 필요한 행을 제거 할 수 없기 때문에 스토리지가 소비됩니다.진공
복제 슬롯에 요구되는 한. 극단적 인 경우 거래 ID 랩 어라운드를 방지하기 위해 데이터베이스가 종료 될 수 있습니다 (참조섹션 24.1.5). 따라서 슬롯이 더 이상 필요하지 않으면 삭제해야합니다.
기본의 토토 사이트 순위 복제 슬롯을 사용하여 핫 스탠드와 동기화 할 수 있습니다Failover
매개 변수pg_create_logical_replication_slot
또는 사용함으로써Failover
옵션구독 생성
슬롯 생성 중에pg_sync_replication_slots
대기에서. 설정sync_replication_slots
대기에서 장애 조치 슬롯은 Slotsync 작업자에서 주기적으로 동기화 될 수 있습니다. 동기화가 작동하려면 기본과 대기 사이에 물리적 복제 슬롯이 있어야합니다 (예 :Primary_Slot_name
대기에서 구성해야합니다) 및hot_standby_feedback
대기에서 활성화해야합니다. 또한 유효한 것을 지정해야합니다dbname
inPrimary_conninfo
. 상기 물리적 복제 슬롯이synchronized_standby_slots
가입자가 핫 스탠드보다 더 빨리 변경 사항을 소비하지 못하도록 기본 목록. 올바르게 구성 되더라도, in이라는 이름의 슬롯 대기로 인해 논리 가입자에게 변경을 보낼 때 일부 대기 시간이 예상됩니다.synchronized_standby_slots
. 언제synchronized_standby_slots
사용됩니다. 기본 서버는 지정된 물리적 복제 슬롯과 관련된 해당 대기까지 완전히 종료되지 않습니다.synchronized_standby_slots
, 기본 서버의 최신 플러시 위치까지 WAL을 수신하는 것을 확인했습니다.
장애 조치 후 논리 복제를 재개하는 능력은에 따라 다릅니다.젠 토토 PostgreSQL : 문서.synced
장애 조치시 대기의 동기화 된 슬롯의 값. 장애 조치 후에 실패 후 논리 복제에 사용하기 전에 대기 상태로 동기 상태를 달성 한 지속적인 슬롯만이 정지 상태를 달성 할 수 있습니다. 임시 동기 슬롯은 논리 디코딩에 사용될 수 없으므로 해당 슬롯의 토토 사이트 순위 복제는 재개 될 수 없습니다. 예를 들어, 비활성화 된 구독으로 인해 동기화 된 슬롯이 대기에 지속될 수없는 경우, 활성화 된 경우에도 장애 조치 후에도 구독을 재개 할 수 없습니다..
동기화 된 논리 슬롯에서 장애 조치 후 논리 복제를 재개하려면 구독의 'Conninfo'가 변경되어 새로운 기본 서버를 가리켜 야합니다. 이것은를 사용하여 수행됩니다구독 변경 ... Connection
. 대기를 홍보하기 전에 구독이 먼저 비활성화되고 연결 문자열을 변경 한 후에 다시 활성화하는 것이 좋습니다.
프로모션 중에 이전 기본이 다시 올라갈 가능성이 있으며 구독이 비활성화되지 않으면 논리 가입자는 연결 문자열이 변경 될 때까지 프로모션 후에도 이전 기본 서버로부터 데이터를 계속 수신 할 수 있습니다. 이로 인해 데이터 불일치 문제가 발생하여 논리적 가입자가 새 기본 서버에서 복제를 계속할 수 없게됩니다.
출력 플러그인은 Write-Ahead Log의 내부 표현에서 데이터를 복제 슬롯 욕구의 소비자 형식으로 변환합니다.
스트리밍 복제 인터페이스를 사용하여 새로운 복제 슬롯이 생성 될 때 (참조create_replication_slot), 스냅 샷이 내보내기 (참조섹션 9.28.5)는 데이터베이스의 상태를 정확하게 표시하여 모든 변경 사항이 변경 스트림에 포함됩니다. 이것은 사용하여 새로운 복제본을 만드는 데 사용될 수 있습니다트랜잭션 설정 스냅 샷
슬롯이 생성 된 순간 데이터베이스의 상태를 읽으십시오. 그런 다음이 트랜잭션을 사용하여 해당 시점에서 데이터베이스 상태를 덤프하는 데 사용될 수 있으며, 그 후에는 변경 사항을 잃지 않고 슬롯의 내용을 사용하여 업데이트 할 수 있습니다..
스냅 샷 생성이 항상 가능한 것은 아닙니다. 특히 핫 스탠드에 연결되면 실패합니다. 스냅 샷 내보내기가 필요하지 않은 응용 프로그램은와 함께이를 억제 할 수 있습니다.NOEXPORT_SNAPSHOT
옵션.