[TroubleShooting] DB 구조 수정 후 Kafka Connector가 인지하지 못하는 문제

지구본욱·2025년 6월 2일

지난 번, 트러블 슈팅 포스팅을 통해 Kafka 연결을 진행하였는데, DB의 구조가 바뀐 뒤로 갑자기 Kafka Connector가 DB의 변경을 인식하지 못하는 문제가 발생하였다 . . .
매우 당황하였지만 어찌저찌 해결하여 이번 포스팅을 작성하게 되었다.

원인 분석

  • MySQL의 테이블 구조를 일부 변경 (컬럼 삭제)
  • Debezium 은 binlog 기반으로 변경 사항을 추적하지만, 내부적으로 "스키마 캐시(schema history)" 를 관리
  • 문제의 핵심은 기존 schema history topic에 반영되지 않은 테이블의 변경이 있었음에도 Connector가 이를 인식하지 못한 것

해결 방법

  1. 기존 커넥터 삭제
curl -X DELETE http://localhost:8083/connectors/mysql-connector
  1. Connector의 이름 변경 및 schema.history 토픽도 새로 부여
{
  "name": "mysql-connector-v2",
  "config": {
    ...
    "database.server.name": "mysqlserver_v2",
    "schema.history.internal.kafka.topic": "schema-changes.gridam.v2"
  }
}

교훈

4. 얻은 교훈

  • Debezium은 스키마 이력을 Kafka topic에 저장하므로, 테이블 구조를 수정하면 schema history 재생성 or topic 변경이 필요할 수 있음
  • Connector 이름을 바꾸는 것만으로는 불충분할 수 있고, schema topic을 분리해주는 것이 명확하고 안전한 방법
  • 테스트 단계에서도 schema history topic을 version 관리하듯 네이밍 해두는 것이 좋음
profile
어제보다 1cm라도 나아가는 사람 (위로)

0개의 댓글