pglogical
확장 프로그램, 이점, 제한사항을 간략하게 설명합니다.
개요
pglogical
확장 프로그램은 PostgreSQL용으로 설계된 강력하고 유연한 논리 복제 도구이며 고가용성(HA) 및 재해 복구(DR)도 지원합니다.
일반적으로 물리적 복제라고 하는 기존 바이너리 복제는 파일 시스템 및 블록 수준에서 변경사항을 복제하므로 대상 시스템에 물리적 미러가 생성됩니다. 물리적 복제는 강력하고 전체 데이터베이스 클러스터를 보호하지만 단방향이며 기본 데이터베이스 데이터 파일과 미리 쓰기 로그(WAL) 파일에 대한 액세스가 필요합니다.
반면 pglogical
확장 프로그램은 제공자 데이터베이스에서 SQL 변경사항을 추출하여 복제한 후 구독자 데이터베이스 하나 이상에 대해 재생합니다. 이 복제를 논리적 복제라고 합니다.
pglogical
확장 프로그램을 사용하면 다음 작업을 수행할 수 있습니다.
- 여러 AlloyDB Omni 데이터베이스 간에 데이터를 복제합니다.
- AlloyDB Omni 및 Google Cloud AlloyDB 간에 데이터를 복제합니다.
- AlloyDB Omni 및 다양한 서드 파티 클라우드 서비스가 포함된 기타 PostgreSQL 배포 간에 데이터를 복제합니다.
이점
pglogical
확장 프로그램을 사용한 논리적 복제에는 다음과 같은 이점이 있습니다.
선택적 복제: 필터와 규칙을 설정하여 복제할 데이터와 위치를 결정할 수 있는 유연성을 제공합니다. 포함할 테이블과 새 테이블 포함 여부에 따라 새 테이블을 처리하는 방법을 선택할 수 있습니다. 열 및 행 필터를 추가할 수도 있습니다.
apply delay
(선택사항)를 구독자가 제공업체의 일부 후행 시점을 나타내도록 하려는 상황에 추가할 수 있습니다.양방향 및 멀티 기본 복제: 모든 구성원 데이터베이스가 읽기/쓰기 상태로 열려 있으며 완전히 사용 가능합니다. 각 엔드포인트 데이터베이스는 제공자와 구독자 역할 모두 수행하므로 고급 복제 시나리오를 만들고 서로 다른 엔드포인트에서 데이터를 업데이트할 수 있습니다.
클라우드 제공업체 지원: Google과 같은 클라우드 제공업체는
pglogical
확장 프로그램의 가치를 인식하고 PostgreSQL용 Google Cloud SQL 및 AlloyDB와 같은 클라우드 서비스에 통합합니다. 다른 클라우드 제공업체도pglogical
확장 프로그램을 옵션으로 포함하여 멀티 클라우드 또는 하이브리드 클라우드 구성을 지원합니다.버전 간 복제: pglogical은 실제 SQL 문을 복제하므로 PostgreSQL 주 버전 간 복제가 가능합니다. 특히 제공업체 소스 데이터베이스 버전이 구독자 대상 데이터베이스 버전보다 낮은 경우 버전 간 복제를 안정적으로 구현할 수 있습니다.
pglogical
확장 프로그램은 버전 9.4 이상과 같은 다양한 이전 버전의 PostgreSQL을 지원합니다. 따라서 기존 시스템을 처리하고 AlloyDB Omni 및 Google Cloud AlloyDB에서 사용되는 것과 같은 최신 버전의 PostgreSQL로 데이터를 복제하려는 시나리오에 적합합니다.
요약하자면 pglogical
확장 프로그램은 이전 버전의 PostgreSQL 및 PostgreSQL용 Google Cloud SQL과 AlloyDB를 포함한 클라우드 관리 서비스와 호환되는 기능이 풍부한 논리적 복제 솔루션을 제공합니다.
논리적 복제 제한사항
다른 관계형 데이터베이스 플랫폼에서 사용되는 기술을 포함한 모든 논리적 복제 기술에는 몇 가지 제한사항이 있으며 잘못 관리하면 복제 프로세스가 중단될 수 있습니다.
안정적인 구현을 위해 다음 사항을 고려하세요.
- 복제 범위 외부에 있는 데이터베이스 범위 객체와 클러스터 범위 객체를 처리하는 방법을 고려합니다.
pglogical
확장 프로그램은 데이터베이스 수준에서 작동하며 지정된 테이블 및 시퀀스 집합에 대해서만 작동합니다. 다른 방법을 사용하여 함수 및 프로시저와 같은 다른 객체 유형을 복제해야 합니다. - 모든 복제 테이블에 기본 키가 있어야 합니다.
REPLICA IDENTITY
테이블 기능을 활용하여pglogical
확장 프로그램에 행을 고유하게 식별하는 열을 알릴 수 있습니다. 가능한 이 기능을 사용하지 말아야 합니다. 기본 키가 없고 본질적으로 정적이며UPDATED
또는DELETED
가 아니며INSERTS
만 지원하는 테이블과 같은 유형의 테이블에는 기본 키가 필요하지 않습니다. - 구독자 데이터베이스의 트리거 및 시퀀스 관리. 기본적으로 트리거는
ORIGIN
또는LOCAL
트리거로 정의되며 행이 복제될 때 구독자 데이터베이스에서 실행되지 않습니다. 트리거가 필요하지 않은 경우 구독자 측에서 실행되지 않도록 모든 트리거를 확인하여REPLICA
옵션이 모든 트리거에 설정되어 있는지 확인해야 합니다. who wins
규칙을 통해 수동 또는 자동으로 충돌 해결을 처리합니다.- 모든 엔드포인트에서 수동으로 구현하거나 제공업체 데이터베이스에서 적절한
pglogical
API 함수를 사용하여 데이터 정의 언어(DDL)를 구독자 데이터베이스에 자동으로 복제하여 DDL 명령어를 복제합니다. - 새로 생성된 테이블과 시퀀스가 기본 데이터베이스의 복제 세트에 수동 또는 자동으로 추가되도록 합니다.
- 복제 토폴로지의 모든 엔드포인트 간에 강력하고 성능이 우수하며 신뢰할 수 있고 안전한 TCP 네트워크가 있는지 확인합니다.
pglogical
확장 프로그램의 추가 제한사항은 다음과 같습니다.
pglogical
버전 2.4.3에는 수퍼유저 권한이 필요합니다.- 대부분의 테이블과 시퀀스를 복제할 수 있지만 다른 객체 유형은
pglogical
확장 프로그램에서 복제되지 않으며TEMPORARY
및UNLOGGED
테이블도 복제되지 않습니다. - DDL을 복제하려면 pglogical API 함수를 사용해야 합니다. 기본 DDL 명령어는 복제되지 않습니다(
TRUNCATE
명령어 제외). - 테이블 및 시퀀스별 객체 수준에서 작동하며 데이터베이스별로 배포됩니다. 즉,
users
및roles
과 같은 클러스터 범위 객체를 포함한 일부 객체가 복제에서 제외되며 이러한 객체를 별도로 관리해야 합니다.