인사이트

인사이트

새로운 관점으로 깊이 있는 통찰을 제시합니다.

데이터 관리

무중단 데이터 마이그레이션을 위한 필수 솔루션-CDC(Capture Data Change)

2021.11.05여한나
다운로드

들어가며

DB(데이터베이스)는 IT 시스템에 필수적인 요소이다. 장기간 시스템을 운영하게 되면 DB 관리에 가장 많은 노력을 쏟게 된다. DB 관리 업무 중 위험성과 비용 부담이 큰 작업 중의 하나로 데이터 마이그레이션(Migration)을 들 수 있다. 본 아티클에서는 데이터 마이그레이션을 효과적으로 수행할 수 있는 방법에 대해 알아보겠다.

 

 

데이터 마이그레이션

데이터 마이그레이션이란?

DB 버전 업그레이드, 노후화된 노드의 변경 및 DB 교체 등의 이유로 운영 중인 DB를 변경해야 하는 경우가 종종 발생한다. 이 때 기존 DB에 저장되어 있던 데이터를 신규 DB로 옮기는 과정이 필요한데 이를 데이터 마이그레이션이라고 한다.

 

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

데이터 마이그레이션을 위해 가장 많이 사용하는 방법은 Import(가져오기)·Export(내보내기)이다. 각 DBMS 제품이 자체적으로 지원하는 유틸리티를 활용하여 Export를 수행하는 시점을 기준으로 데이터를 추출해 디스크에 파일로 생성하고 해당 파일을 이용하여 타깃 DB에 Import를 수행한다.

원격지에서의 Import·Export를 지원하는 DB도 있으나 네트워크 지연을 최소화하기 위해 주로 기존 DB에서 Export를 수행한 후 생성된 파일을 신규 DB 서버로 복사하고 Import를 수행하는 방식으로 데이터 마이그레이션이 이루어진다.

Import·Export 방식은 DB/스키마/테이블 단위 등 수행 범위를 다양하게 지정할 수 있다. 데이터 뿐만 아니라 테이블, 인덱스, 제약사항, 함수, 프로시저 등 DB 오브젝트에 대한 마이그레이션도 가능해 관리자가 별도로 오브젝트 생성문을 추출·수행할 필요가 없다는 장점이 있다.

 

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

이 같은 편리성에도 불구하고 Import·Export 방식의 마이그레이션은 다음과 같은 문제점이 있다.

첫 번째는 길어지는 다운타임(Downtime)이다.

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

두 번째 문제점은 롤백(Rollback) 시 역방향 마이그레이션으로 인한 서비스 지연이다.

상상도 하기 싫지만 마이그레이션한 DB로 서비스를 오픈한 이후 심각한 문제가 발견되어 롤백을 해야 하는 경우를 가정해보자. Import·Export 방식으로는 최초 마이그레이션 이후에 반영된 데이터만을 선별해 역방향 마이그레이션을 수행할 수 없다. 그러므로 또다시 신규 DB에서 기존 DB로 전체 Import·Export 마이그레이션을 수행해야 하며 그만큼 서비스가 지연된다.

 

 

CDC를 활용한 마이그레이션

앞서 설명한 Import·Export 방식에 따른 데이터 마이그레이션의 한계를 극복하기 위한 대안으로 CDC 솔루션을 활용할 수 있다.

CDC 솔루션이란?

CDC는 Change Data Capture의 약자로 소스 DB의 로그 파일을 분석해 변경된 데이터를 추출하는 기술이다. CDC를 이용해서 변경된 데이터만 타깃 DB에 반영하는 솔루션을 CDC 솔루션이라고 한다.

각각의 DBMS(데이터베이스 관리 시스템)에는 DB에서 발생한 모든 변경 이력을 순차적으로 기록하는 로그 파일이 존재한다. 사용자가 특정 데이터의 변경을 요청하는 쿼리를 수행하면 데이터 변경과 동시에 이력이 로그 파일에 저장된다. DB에 장애가 발생하여 데이터가 깨진 경우 해당 로그 파일에 기록된 데이터 변경 내역을 이용해 복구할 수 있다.

CDC 솔루션은 소스 DB에서 이 로그 파일을 지속적으로 모니터링 및 분석하여 데이터 변경 내역만을 타깃 DB에 반영하므로 실시간에 가까운 데이터 동기화가 가능하다.

 

그림1 CDC 솔루션의 작동 원리입니다. 데이터변경 -DB - Log - 실시간추출 - extractor (실시간 변경내역전달)-Replicator-병렬처리-DB(Target)

 

다양한 CDC 솔루션이 시중에 출시되어 있다. 에스코어도 솔루션을 제공하고 있으며 특히 CDC 병렬 이벤트 추출 및 데이터 변경분의 병렬 반영 기능을 통해 고성능의 데이터 동기화를 지원한다.

 

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

CDC 솔루션을 사용하더라도 최초 1회의 데이터 마이그레이션은 반드시 필요하다. Import·Export 방식으로 초기 마이그레이션을 수행한다는 가정하에 [그림 2]의 순서로 살펴보자.(시간의 흐름을 나타내기 위해 DB 타임을 임의로 1부터 11까지 지정)

 

그림2 CDC 솔루션을 활용한 마이그레이션 프로세스 예 1입니다. 1. Export 2. File전송 3. import - CDC 솔루션 : Data 변경분 추출 4. CDC솔루션 : Data 변경분 반영 - 5.서비스 전환

 

  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간의 갭이 사라지고 실시간 동기화 유지 중에 서비스를 전환함으로써 무중단에 가까운 마이그레이션이 가능하다.

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

 

그림3 CDC 솔루션을 활용한 마이그레이션 프로세스 예 2입니다. 1. Export 2. File전송 3. import - CDC 솔루션 : Data 변경분 추출 4. CDC솔루션 : Data 변경분 반영 - 5. 서비스 전환 - 6.CDC솔루션 역동기화 수행 (신규 DB Data변경 지속 발생 중) 이슈발생 (서비스 Rollback)

 

 

마치며

과거에는 안정적으로 운영 중인 DB를 변경하는 일이 극히 드물었다. 그러나 최근 클라우드 환경으로의 전환, 다양한 DBMS 도입 등 DB 변경이 잦아지면서 데이터 마이그레이션이 증가하고 있다. 또한 빅데이터의 중요성이 강조되면서 대규모 DB를 운영하는 사례도 많아지고 있다. 이로 인해 대용량 DB에 대한 효율적인 마이그레이션 전략을 고민하는 DB 관리자도 늘어나는 추세이다. 그러나 큰 걱정은 하지 않아도 된다. 데이터 관리 기술의 결정체, CDC 솔루션을 잘 활용하면 대용량 마이그레이션이라는 도전을 수월하게 극복할 수 있을 것이기 때문이다.

# References

- http://www.datanet.co.kr/news/articleView.html?idxno=155922
- https://www.comworld.co.kr/news/articleView.html?idxno=49397
- http://wiki.hash.kr/index.php/%EB%A7%88%EC%9D%B4%EA%B7%B8%EB%A0%88%EC%9D%B4%EC%85%98
- https://dataonair.or.kr/db-tech-reference/d-story/data-story/?mod=document&pageid=1&keyword=%EB%A7%88%EC%9D%B4%EA%B7%B8%EB%A0%88%EC%9D%B4%EC%85%98&uid=63025

여한나 프로

여한나 프로

에스코어㈜ 소프트웨어사업부 컨버전스SW그룹

DBMS 신규 구축, 이기종 DB간 마이그레이션·연동 등 DBMS 관련 기술서비스 경험과 지식을 기반으로 에스코어 CDC 솔루션 8Sync®의 기술서비스를 담당하고 있습니다.