0Pricing
SQL Academy · 강의

샤딩을 위한 논리적 복제

PUBLICATION/SUBSCRIPTION 논리적 복제로 클러스터 간 테이블을 이동하고 주요 버전 업그레이드를 지원해보세요.

샤딩을 위한 논리적 복제은(는) CoddyKit의 무료 SQL Academy 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 SQL Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. SQL Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

논리적 복제와 물리적 복제

물리적 복제는 WAL의 BYTES를 복제합니다. 즉, 전체 클러스터를 같은 버전으로 복제합니다. 논리적 복제는 ROWS를 복제하므로 선택한 테이블만 복제할 수 있고 PG 버전이 달라도 됩니다.

  • 특정 테이블 구독
  • PG 14에서 PG 16으로 복제(업그레이드!)
  • 주의해서 양방향 또는 다중 주 서버 구성
  • 서로 다른 스키마 허용

설정: 게시자

주 서버를 게시자로 지정합니다.

-- postgresql.conf
wal_level = logical

-- Create a publication:
CREATE PUBLICATION pub_orders FOR TABLE orders, order_items;

-- Or all tables in the database:
CREATE PUBLICATION pub_all FOR ALL TABLES;

설정: 구독자

대상 데이터베이스에서 다음을 수행합니다.

CREATE SUBSCRIPTION sub_orders
  CONNECTION 'host=primary port=5432 user=repl dbname=mydb'
  PUBLICATION pub_orders;

초기 동기화

구독은 일치하는 모든 테이블을 처음에 복사한 다음 변경 사항을 스트리밍합니다. 대상 스키마는 원본과 일치해야 합니다.

사용 사례: 주 버전 업그레이드

논리적 복제는 최소한의 중단으로 PostgreSQL을 업그레이드하는 현대적인 방법입니다.

  1. PG16 클러스터 구축
  2. PG14에서 PG16으로 논리적 복제
  3. PG16이 따라잡으면 애플리케이션 전환
  4. PG14 종료

사용 사례: 데이터베이스 분할

거대한 데이터베이스를 더 작은 데이터베이스로 나누려면 다음과 같이 하십시오.

  1. 새 서비스에 필요한 테이블만 게시
  2. 새 데이터베이스에서 구독
  3. 따라잡기가 끝난 후 쓰기 작업을 이전

사용 사례: 이기종 복제본

인덱스가 다른 읽기 복제본이나 추가 보고 열이 있는 데이터 웨어하우스용 PostgreSQL로 복제할 수 있습니다.

충돌

논리적 복제는 충돌을 자동으로 해결하지 않습니다. 양쪽에서 같은 행이 수정되면 구독자가 오류와 함께 중지됩니다. 다음 방법으로 피하십시오.

  • 한쪽에서만 쓰기
  • 더 나은 진단을 위해 REPLICA IDENTITY FULL 사용
  • 충돌을 수동으로 해결한 뒤 구독 재시작

스키마 변경

DDL은 복제되지 않습니다. 양쪽에 스키마 변경을 수동으로 적용하십시오. 일반적으로 구독자에 먼저 적용한 다음 게시자에 적용합니다. 또는 pglogical 확장 프로그램을 사용하면 DDL을 복제할 수 있습니다.

부분 복제

최신 PG에서는 게시물별로 행 필터와 열 목록을 지정할 수 있습니다.

CREATE PUBLICATION us_only FOR TABLE customers
  WHERE (country = 'US');

CREATE PUBLICATION compact FOR TABLE users (id, email);

논리적 복제를 이용한 샤딩

고객을 전용 샤드로 이동하려면 다음과 같이 하십시오.

  1. 한 고객으로 필터링한 게시물을 원본에 생성
  2. 대상에서 구독
  3. 애플리케이션을 새 샤드로 전환
  4. 원본에서 고객 데이터 삭제

성능과 지연

논리적 복제는 구독별로 대부분 단일 스레드로 실행됩니다. 데이터 처리량이 많은 원본은 여러 게시물과 구독을 사용하거나 pglogical / Debezium 같은 타사 도구를 사용하면 이점을 얻을 수 있습니다.

요약

논리적 복제는 행 수준 스트리밍을 가능하게 합니다.

  • 버전 간 복제와 부분 테이블 복제
  • 최소한의 중단으로 주 버전 업그레이드
  • 충돌 해결은 YOUR 책임
  • DDL은 복제되지 않음

빠른 확인

최소한의 중단으로 PostgreSQL 14에서 16으로 업그레이드해야 합니다. 어떤 복제가 도움이 됩니까?

자주 묻는 질문

“샤딩을 위한 논리적 복제” 강의는 무료인가요?

네 — “샤딩을 위한 논리적 복제” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 SQL Academy 강의 전체를 잠금 해제할 수 있습니다. SQL Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“샤딩을 위한 논리적 복제”에서 뭘 배우나요?

PUBLICATION/SUBSCRIPTION 논리적 복제로 클러스터 간 테이블을 이동하고 주요 버전 업그레이드를 지원해보세요. 브라우저에서 직접 실행하는 실습 코드로 SQL Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

SQL Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 SQL Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.

“샤딩을 위한 논리적 복제” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 SQL Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 SQL Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 스트리밍 복제와 WAL
  2. 샤딩을 위한 논리적 복제
  3. 장애 조치와 리더 선출(Patroni, Stolon)
  4. 읽기 복제본과 연결 라우팅
← SQL Academy(으)로 돌아가기