샤딩을 위한 논리적 복제
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을 업그레이드하는 현대적인 방법입니다.
- PG16 클러스터 구축
- PG14에서 PG16으로 논리적 복제
- PG16이 따라잡으면 애플리케이션 전환
- PG14 종료
사용 사례: 데이터베이스 분할
거대한 데이터베이스를 더 작은 데이터베이스로 나누려면 다음과 같이 하십시오.
- 새 서비스에 필요한 테이블만 게시
- 새 데이터베이스에서 구독
- 따라잡기가 끝난 후 쓰기 작업을 이전
사용 사례: 이기종 복제본
인덱스가 다른 읽기 복제본이나 추가 보고 열이 있는 데이터 웨어하우스용 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);논리적 복제를 이용한 샤딩
고객을 전용 샤드로 이동하려면 다음과 같이 하십시오.
- 한 고객으로 필터링한 게시물을 원본에 생성
- 대상에서 구독
- 애플리케이션을 새 샤드로 전환
- 원본에서 고객 데이터 삭제
성능과 지연
논리적 복제는 구독별로 대부분 단일 스레드로 실행됩니다. 데이터 처리량이 많은 원본은 여러 게시물과 구독을 사용하거나 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 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.