CDC (Capture Data Change)

.·2023년 1월 6일
0

정의

Capture Data Change
변경되는 데이터를 실시간으로 다른 데이터베이스에 동기화시켜주는 기술

사용

  • 데이터 동기화
  • 무중단 대용량 데이터 마이그레이션

데이터 마이그레이션

운영 중이던 DB에 저장되어 있던 데이터를 신규 DB로 옮기는 과정

사용 이유

  • 클라우드 환경으로의 전환
  • DB 버전 업그레이드
  • 노후화된 노드 변경 및 DB 교체
  • 다양한 DBMS 도입

특징

로그 파일 이용

  • 소스 DB의 로그 파일을 분석해서 변경된 데이터를 추출한다.
    - 각 DBMS에서는 DB에서 발생한 모든 변경 이력을 순차적으로 기록하는 로그 파일이 존재한다.
    - 장애가 발생하여 데이터가 깨진 경우 로그 파일에 기록된 내역을 이용해서 복구한다.
  • 변경된 데이터만 타깃 DB에 반영한다.
  • 소스 DB의 로그 파일을 지속적으로 모니터링, 분석해서 타겟 DB로 실시간에 가까운 데이터 동기화를 한다.

구조

장점

  1. 소스 DB와 타깃 DB 간의 갭이 사라지고 실시간 동기화를 유지하면서 서비스 전환이 가능하다.
  2. 신규 DB에서 이슈가 발생하여 기존 DB로의 역동기화를 수행해야할 경우 시간 지연 없이 신속한 서비스 롤백이 가능하다.

종류

OGG (Oracle Golden Gate)

모든 경우에 사용할 수 있는 것은 아님.
1. 소스 DB 변경이 성능에 영향을 줄 정도로 많지 않아야 한다.
2. 타겟 DB의 복제가 느려도 비즈니스 영향이 없어야 한다.

비즈니스 요건

  1. 비즈니스 중요성
    • 실시간 요건 중요도
    • CDC 복제 중단 시 타겟 서버 실시간 업무 영향 고려
    • CDC 지연 시 몇 시간까지 지연 가능한가
  2. Batch 발생량
    • 사용자가 많은 시간대에 대량변경 배치 작업이 존재하는가
    • 추출, 복제 지연 발생
    • 소스/타깃 DBMS 리소스 과다 사용 가능
  3. 복제 성능
    • 타깃 DB 적재가 10초 이상 걸려도 업무에 영향이 없는가
    • CDC 대상 외의 테이블을 대량 변경 시 Redo Log 증가로 CDC 처리지연 발생 가능
  4. Referential Integrity 유지
    • 트랜잭션 순서 보장이 필요한가
      - 필요 시 CDC 적용 불가
  5. Long / LOB 컬럼 변경
    • Long / LOB 컬럼 변경이 많지 않은 테이블인가

테이블 물리 구조

  1. 테이블 레이아웃
    • 소스와 타깃 테이블 구조가 동일한가
  2. 압축 여부
    • Compress 옵션 적용되어 있으면 온라인 데이터 추출 지연 발생
  3. Nologging
    • Nologging mode에서 CDC 변경 데이터 추출 불가
  4. 소스 DB 데이터 삭제 방식
    • 소스 DB 데이터 삭제 방식이 Truncate 혹은 Partition Exchange 방식이라면 타깃 데이터 반영이 안 되며, 타깃 DB에서 별도 처리 필요

출처

0개의 댓글