본문 바로가기

데이터 사이언스 DataScience/Data Base 데이터베이스

[Oracle] CDC 대상 테이블 선별 기준

CDC (Change Data Capture)는 데이터 실시간 동기화로 비즈니스 문제 해결의 도움을 주지만 

모든 경우에 사용할 수 있는 것은 아니다.

 

* 참고 : CDC를 쓰는 이유 :  

https://subbak2.tistory.com/93

 

[Oracle] OGG란? CDC솔루션 쓰는 이유

1. CDC 솔루션의 필요성 - CDC란? Change Data Capture.  변경되는 데이터를 실시간으로 다른 데이터베이스에 동기화 시켜주는 기술을 의미한다. 예를 들어 A 서버에 있는 테이블의 데이터가 변경되면,

subbak2.tistory.com

 

CDC 대상 테이블을 선별하는 기준은

크게 1. 비즈니스 요건과 2. 테이블 물리구조로 나눠서 생각해볼 수 있다.

 

요약하면

소스DB의 변경이 성능에 영향을 줄 정도로 많지 않아야 하고, 타겟DB의 복제가 느려도 비즈니스 영향이 없어야 한다.

 

항목 세부항목 CDC 적용 기준
비즈니스 요건 비즈니스 중요성 비즈니스의 실시간 요건 중요도가 높은가?
 - CDC 복제 중단시 타겟서버 실시간 업무 영향도 고려
 - CDC 지연시 몇시간 지연 가능
Batch 발생량 사용자가 많은 시간대에 대량변경 Batch 작업 존재하는가?
 - 추출, 복제 지연 발생
 - 소스/타겟 DBMS 리소스 과다 사용 가능
복제 성능 타겟 DB 적재가 10초 이상 걸려도 업무 영향 없는가?
 - CDC 대상 외 테이블 대량 변경 발생시 Redo Log 증가로 CDC 처리지연 발생 가능
RI 유지
(Referential Integrity)
트랜잭션 순서 보장이 필요한가?
 - 필요시 CDC 적용 불가
Long / LOB 컬럼 변경 Long / LOB 컬럼 변경 많지 않은 테이블인가?
테이블 물리 구조 테이블 레이아웃 소스 / 타겟 테이블 구조가 동일한가?
 - Partition Key 등
압축 여부 Compress 옵션 적용되어있는가?
 - 온라인 데이터 추출 지연 발생
Nologging Nologging mode 속성 존재하는가?
 - Nologging mode에서 CDC 변경 데이터 추출 불가
소스 DB 데이터 삭제 방식 소스 DB 데이터 삭제 방식이 Truncate 혹은 Partition exchange 방식인가?
 - Truncate / Partition Exchange된 데이터는 타겟 데이터 반영 안 됨 → 타겟 DB에서 별도 처리 필요

 

반응형