CDC: 무중단 데이터 마이그레이션

슬터디·2024년 4월 30일
0

[YOU] 기술분석

목록 보기
21/24

전통적인 데이터 마이그레이션 방법

Import·Export

  • 각 DBMS 제품이 자체적으로 지원하는 유틸리티

    • Export: 데이터 추출하여 디스크에 파일로 생성
    • Import: 해당 파일을 이용하여 타깃 DB에 Import 수행
  • 주로 기존 DB에서 Export를 수행한 후 생성된 파일을 신규 DB 서버로 수행하는 방식으로 진행.

    • 원격지에서의 마이그레이션을 지원하는 DB도 있지만, 네트워크 지연을 최소화하기 위해 기존 DB에서 진행
  • 수행 범위를 다양하게 지정 가능

    • 테이블, 인덱스, 제약사항, 함수, 프로시저, 스키마 등 DB 오브젝트에 대한 마이그레이션도 가능
    • 관리자가 별도로 오브젝트 생성문을 추출·수행할 필요가 없다

Import·Export 방식 마이그레이션의 문제점

길어지는 다운타임

  • Export를 수행한 시점 이후 기존 DB에서 발생하는 데이터 변동 건은 내보낸 파일에 포함X. 신규(타깃) DB에 Import가 완료되는 순간까지 기존 DB와 연결된 서비스는 모두 중단해야함
    • 소규모 DB는 간단하게 마이그레이션할 수 있지만, 대용량 DB에서는 서비스 다운타임이 길어질 것
    • 다운타임을 무한정 확보할 수 없기에 대용량 DB에서는 사용이 불가능한 방법

롤백 시 역방향 마이그레이션으로 인한 서비스 지연

마이그레이션한 DB로 서비스를 오픈한 이후 심각한 문제가 발견되어 롤백을 해야 하는 경우를 가정

  • 이 방식으로는 최초 마이그레이션 이후에 반영된 데이터만을 선별해 역방향 마이그레이션을 수행할 수 없다
  • 또 다시 신규 DB에서 기존 DB로 전체 Import·Export 마이그레이션을 수행해야 하며 그만큼 서비스가 지연될 것

ETL 방식의 한계

ETL(Extract, Transform, Load)

  • 정해진 주기에 데이터를 추출하고 변환한 후 로드하는 방식

  • Extract

    • DB 쿼리가 대량으로 많은 양의 데이터를 추출하는 배치로 수행됨
    • 소스 DB가 지속적으로 업데이트 되기 때문에 빠르게 비효율적이게 됨
  • Transform

    • 데이터셋을 로드하기 전, 대상 테이블의 구조와 형식이 일치하도록 변환해야 함.
  • 실시간 처리에는 적합하지 않다

CDC를 활용한 마이그레이션

Import·Export 방식에 따른 데이터 마이그레이션의 한계를 극복하기 위한 대안

CDC 솔루션(Change Data Capture)

  • 소스 DB의 로그 파일을 분석해 변경된 데이터를 추출하고, 이를 다른 시스템으로 ㅈㄴ송하여 데이터 동기화 및 연동을 가능하게 하는 기술로써, CDC를 이용해서 변경된 데이터만 타깃 DB에 반영하는 솔루션을 CDC 솔루션이라고 함
    • 모든 DBMS에는 로그 파일이 존재하며 이를 지속적으로 모니터링/분석하여 데이터 변경 내역만 타깃 DB에 반영해줌
    • 실시간에 가까운 데이터 동기화 가능

CDC 솔루션을 활용한 마이그레이션 과정과 이점

마이그레이션과 동기화

  • CDC 솔루션을 사용하더라도 최초 1회의 데이터 마이그레이션은 반드시 필요함
  • 초기 마이그레이션을 Import/Export 방식으로 진행한다고 가정

  1. DB 타임=1의 시점에 Export로 데이터를 추출
    Export는 DB 타임=3의 시점에 종료되었으나 생성된 덤프 파일의 데이터는 DB 타임=1 시점의 것
  2. 앞의 1에서 Export한 덤프 파일을 신규 DB 서버로 전송
  3. 신규 DB 서버에서 Import를 수행하여 DB 타임=6의 시점에 종료. 이때 신규 DB에 마이그레이션된 데이터는 DB 타임=1 시점의 것
  4. CDC 솔루션을 이용하여 DB 타임=1 시점 이후 발생한 데이터 변경분을 타깃 DB에 동기화
  5. 실시간 동기화를 통해 소스 DB와 타깃 DB의 데이터가 동일해진 후에 서비스를 전환

소스 DB에서는 Export를 시작한 DB 타임=1의 시점부터 데이터 변경이 지속적으로 발생하고 있음. 하지만 4에서 CDC 솔루션을 통해 DB 타임=1 이후의 데이터 변경분을 타깃 DB로 반영하기 시작하면서 소스 DB와 타깃 DB간의 갭이 사라지고 실시간 동기화 유지 중에 서비스를 전환함으로써 무중단에 가까운 마이그레이션이 가능함!

빠른 롤백

[그림 3]은 서비스 전환 이후 신규 DB에서 기존 DB로의 역동기화를 수행하면 치명적인 이슈가 발생해 서비스 롤백을 해야 하는 상황을 나타낸다. 이때 CDC 솔루션을 사용하면 시간 지연 없이 바로 서비스 롤백을 실행할 수 있게 된다.

마치며

과거에는 안정적으로 운영 중인 DB를 변경하는 일이 극히 드물었지만, 최근 클라우드 환경으로의 전환, 다양한 DBMS 도입 등 DB 변경이 잦아지면서 데이터 마이그레이션이 증가하고 있다. 또한 빅데이터의 중요성이 강조되면서 대규모 DB를 운영하는 사례도 많아지고 있다.

이로 인해 대용량 DB에 대한 효율적인 마이그레이션 전략을 고민하는 DB 관리자도 늘어날 것이다. CDC 솔루션을 잘 활용하면 대용량 마이그레이션이라는 도전을 수월하게 극복할 수 있을 것이다.

ref) 자료1

profile
기억력이 맹구라 늘 기록해야해

0개의 댓글