pglogical 확장 프로그램 정보

이 페이지에서는 pglogical 확장 프로그램, 이점, 제한사항을 간략하게 설명합니다.

개요

pglogical 확장 프로그램은 PostgreSQL용으로 설계된 강력하고 유연한 논리 복제 도구이며 고가용성 (HA) 및 재해 복구 (DR)도 지원합니다.

일반적으로 물리적 복제라고 하는 기존 바이너리 복제는 파일 시스템 및 블록 수준에서 변경사항을 복제하여 대상 시스템에 물리적 미러를 만듭니다. 물리적 복제는 강력하고 전체 데이터베이스 클러스터를 보호하지만 단방향 전용이며 기본 데이터베이스 데이터 파일과 미리 쓰기 로그 (WAL) 파일에 액세스해야 합니다.

반면 pglogical 확장 프로그램은 제공업체 데이터베이스에서 SQL 변경사항을 추출하고 복제한 다음 하나 이상의 구독자 데이터베이스에 대해 재생합니다. 이러한 복제를 논리적 복제라고 합니다.

pglogical 확장 프로그램을 사용하면 다음을 수행할 수 있습니다.

  • 여러 AlloyDB Omni 데이터베이스 간에 데이터를 복제합니다.
  • AlloyDB Omni와 Google Cloud AlloyDB 간에 데이터를 복제합니다.
  • 서드 파티 클라우드 서비스에 포함된 많은 PostgreSQL 배포판과 AlloyDB Omni 간에 데이터를 복제합니다.

이점

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 확장 프로그램에서 복제하지 않으며 TEMPORARYUNLOGGED 테이블은 복제되지 않습니다.
  • DDL을 복제하려면 pglogical API 함수를 사용해야 합니다. 네이티브 DDL 명령어는 TRUNCATE 명령어를 제외하고 복제되지 않습니다.
  • 테이블 및 시퀀스별로 객체 수준에서 작동하며 데이터베이스별로 배포됩니다. 즉, usersroles와 같은 클러스터 범위 객체를 비롯한 일부 객체는 복제에서 제외되며 별도로 관리해야 합니다.

다음 단계