정의
Capture Data Change
변경되는 데이터를 실시간으로 다른 데이터베이스에 동기화시켜주는 기술
사용
- 데이터 동기화
- 무중단 대용량 데이터 마이그레이션
데이터 마이그레이션
운영 중이던 DB에 저장되어 있던 데이터를 신규 DB로 옮기는 과정
사용 이유
- 클라우드 환경으로의 전환
- DB 버전 업그레이드
- 노후화된 노드 변경 및 DB 교체
- 다양한 DBMS 도입
특징
로그 파일 이용
- 소스 DB의 로그 파일을 분석해서 변경된 데이터를 추출한다.
- 각 DBMS에서는 DB에서 발생한 모든 변경 이력을 순차적으로 기록하는 로그 파일이 존재한다.
- 장애가 발생하여 데이터가 깨진 경우 로그 파일에 기록된 내역을 이용해서 복구한다.
- 변경된 데이터만 타깃 DB에 반영한다.
- 소스 DB의 로그 파일을 지속적으로 모니터링, 분석해서 타겟 DB로 실시간에 가까운 데이터 동기화를 한다.
구조
장점
- 소스 DB와 타깃 DB 간의 갭이 사라지고 실시간 동기화를 유지하면서 서비스 전환이 가능하다.
- 신규 DB에서 이슈가 발생하여 기존 DB로의 역동기화를 수행해야할 경우 시간 지연 없이 신속한 서비스 롤백이 가능하다.
종류
OGG (Oracle Golden Gate)
모든 경우에 사용할 수 있는 것은 아님.
1. 소스 DB 변경이 성능에 영향을 줄 정도로 많지 않아야 한다.
2. 타겟 DB의 복제가 느려도 비즈니스 영향이 없어야 한다.
비즈니스 요건
- 비즈니스 중요성
- 실시간 요건 중요도
- CDC 복제 중단 시 타겟 서버 실시간 업무 영향 고려
- CDC 지연 시 몇 시간까지 지연 가능한가
- Batch 발생량
- 사용자가 많은 시간대에 대량변경 배치 작업이 존재하는가
- 추출, 복제 지연 발생
- 소스/타깃 DBMS 리소스 과다 사용 가능
- 복제 성능
- 타깃 DB 적재가 10초 이상 걸려도 업무에 영향이 없는가
- CDC 대상 외의 테이블을 대량 변경 시 Redo Log 증가로 CDC 처리지연 발생 가능
- Referential Integrity 유지
- 트랜잭션 순서 보장이 필요한가
- 필요 시 CDC 적용 불가
- Long / LOB 컬럼 변경
- Long / LOB 컬럼 변경이 많지 않은 테이블인가
테이블 물리 구조
- 테이블 레이아웃
- 압축 여부
- Compress 옵션 적용되어 있으면 온라인 데이터 추출 지연 발생
- Nologging
- Nologging mode에서 CDC 변경 데이터 추출 불가
- 소스 DB 데이터 삭제 방식
- 소스 DB 데이터 삭제 방식이 Truncate 혹은 Partition Exchange 방식이라면 타깃 데이터 반영이 안 되며, 타깃 DB에서 별도 처리 필요
출처