pglogical 확장 프로그램 정보

문서 버전을 선택합니다.

이 페이지에서는 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 확장 프로그램에 어떤 열이 행을 고유하게 식별하는지 알릴 수 있습니다. 하지만 가능하면 이 기능을 사용하지 않는 것이 좋습니다. 기본 키가 없고, 정적인 특성을 가지며, UPDATEDDELETED되지 않고, INSERTS만 지원하는 테이블의 경우 기본 키가 필요하지 않습니다.
  • 구독자 데이터베이스의 트리거 및 시퀀스 관리. 기본적으로 트리거는 ORIGIN 또는 LOCAL 트리거로 정의되며 행이 복제될 때 구독자 데이터베이스에서 실행되지 않습니다. 모든 트리거를 검사하여 REPLICA 옵션이 트리거에 설정되어 필요하지 않은 이상 구독자 측에서 트리거가 실행되지 않도록 해야 합니다.
  • who wins 규칙을 통해 수동 또는 자동으로 충돌 해결 처리
  • 모든 엔드포인트에서 수동으로 구현하거나 제공자 데이터베이스에서 적절한 pglogical API 함수를 사용하여 DDL을 구독자 데이터베이스에 자동으로 복제하여 데이터 정의 언어(DDL) 명령어를 복제합니다.
  • 새로 생성된 테이블과 시퀀스가 기본 데이터베이스의 복제 세트에 수동 또는 자동으로 추가되도록 합니다.
  • 복제 토폴로지의 모든 엔드포인트 간에 강력하고 성능이 우수하며 안정적이고 안전한 TCP 네트워크가 있는지 확인합니다.

pglogical 확장 프로그램의 추가 제한사항은 다음과 같습니다.

  • pglogical 버전 2.4.3에는 수퍼유저 권한이 필요합니다.
  • 대부분의 테이블과 시퀀스는 복제할 수 있지만 다른 객체 유형은 pglogical 확장 프로그램에 의해 복제되지 않으며 TEMPORARYUNLOGGED 테이블은 복제되지 않습니다.
  • DDL을 복제하려면 pglogical API 함수를 사용해야 합니다. 기본 DDL 명령어는 TRUNCATE 명령어를 제외하고 복제되지 않습니다.
  • 테이블 및 시퀀스별 객체 수준에서 작동하며 데이터베이스별로 배포됩니다. 즉, usersroles와 같은 클러스터 범위 객체를 비롯한 일부 객체가 복제에서 제외되며 별도로 관리해야 합니다.

다음 단계