CDC 소비자가 멈춘 뒤 DB의 로그 디스크가 계속 늘어납니다. 변경 로그와 소비 위치는 어떻게 관리하나요?
잠깐, 답변을 보기 전에
먼저 내 말로 설명해 볼까요?
답변과 점검 포인트 펼치기답변 접기
구두 답변
정의를 외우기보다, 원리와 조건을 연결해 설명해 보세요.
CDC가 재개할 위치의 로그를 보존해야 하는 구성에서는 느리거나 중단된 소비자가 원본 로그 정리를 막을 수 있습니다. DB 쓰기가 정상이어도 디스크가 고갈될 수 있으므로 변경 생성률과 소비·보존 위치를 함께 관찰합니다.
동작 원리와 전제
PostgreSQL 복제 슬롯처럼 소비자가 요구하는 WAL 위치를 유지하는 방식은 제품별 계약을 확인합니다. 슬롯 lag와 실제 보존 바이트, 가장 오래된 위치, 사용 가능한 디스크를 봅니다. 단순 이벤트 건수만으로 로그 용량을 예측하면 큰 transaction을 놓칩니다.
선택과 실패 처리
보존 상한을 넘으면 소비자 복구가 불가능해져 스냅샷부터 다시 시작해야 할 수 있습니다. 슬롯을 삭제하면 공간을 풀 수 있지만 재개 지점을 잃으므로 먼저 소비자와 데이터 복구 계획을 확인합니다. 무조건 오래된 로그를 지우는 것은 정상 정리가 아닙니다.
구체적인 사례와 검증
원본이 초당 20MB의 로그를 만들고 소비자가 한 시간 멈추면 수십 GB의 보존 부담이 생길 수 있습니다. 실제 수치는 로그 압축·checkpoint·제품 설정에 달려 있으므로 생성 바이트와 정리 가능 위치로 계산합니다. 경보는 디스크 사용률뿐 아니라 현재 생성률에서 남은 시간도 봅니다. 소비자가 더 이상 필요하지 않은 슬롯은 소유자와 복구 요구를 확인하고 제거하지만, 운영 중인 connector의 상태를 모른 채 지우면 전체 재구축이 필요할 수 있습니다. 복구가 진행될 때도 backlog를 한꺼번에 읽어 원본과 대상 DB를 포화시키지 않도록 제한합니다.
소비 중단·복구·스냅샷 중 쓰기를 시험하고 기준 snapshot 이후 변경을 빠짐없이 이어 붙이는지 확인합니다. 원본 상태와 읽기 모델을 대조해 누락·중복을 찾습니다. CDC는 발행 유실을 줄이는 통로이지만 소비 처리·순서·최신성과 보관 비용까지 자동 해결하지 않습니다.
득점 포인트
이해가 드러나는 지점을 확인해 보세요.
- 핵심 구분: CDC가 재개할 위치의 로그를 보존해야 하는 구성에서는 느리거나 중단된 소비자가 원본 로그 정리를 막을 수 있습니다.
- 선택 조건: 보존 상한을 넘으면 소비자 복구가 불가능해져 스냅샷부터 다시 시작해야 할 수 있습니다.
- 검증 기준: 소비 중단·복구·스냅샷 중 쓰기를 시험하고 기준 snapshot 이후 변경을 빠짐없이 이어 붙이는지 확인합니다.
감점 포인트
놓치기 쉬운 조건과 오해를 짚어 보세요.
- 중단된 CDC의 로그를 지워도 소비자가 원래 위치에서 그대로 재개한다고 한다.
더 파고들 거리
하나 더 질문하며 이해의 범위를 넓혀 보세요.
- DB 상태는 바뀌었지만 이벤트를 못 보낸 중단 지점을 어떻게 내구 기록으로 연결하나요?
- 성공 커밋의 내구 지점과 데이터 페이지 기록 시점은 왜 다르며 어떻게 복구하나요?
- 읽기용 복사본을 둘 때 원본·현재 값·역사 snapshot과 재구축 책임을 어떻게 나누나요?
득점·감점 포인트는 학습용 자기 점검 기준이며, 특정 회사의 실제 채점표가 아닙니다.
원리부터 공부하고 싶다면
답변을 보충하는 개념·예제·슈도코드를 읽어 보세요.