본문 바로가기
Database/Oracle

[ORACLE] USER_REPFLAVOR_COLUMNS 완벽 가이드 : 복제 플래이버별 컬럼 구성 전략

by Papa Martino V 2025. 8. 1.
728x90

USER_REPFLAVOR_COLUMNS 완벽 가이드 : 복제 플래이버별 컬럼 구성 전략
[ORACLE] USER_REPFLAVOR_COLUMNS

 

USER_REPFLAVOR_COLUMNS는 Oracle 고급 복제(Advanced Replication) 환경에서 플래이버(Flavor)에 포함된 테이블 컬럼 정보를 조회할 수 있는 뷰입니다. 이 뷰는 복제 대상 객체의 구성 세부 사항을 플래이버 단위로 관리할 수 있게 하며, 플래이버 기반의 유연한 복제 정책 수립과 충돌 해결 로직 구현에 매우 유용합니다.

1. USER_REPFLAVOR_COLUMNS란?

USER_REPFLAVOR_COLUMNS 뷰는 사용자의 복제 그룹 내 정의된 각 플래이버에 대해 어떤 컬럼이 포함되었는지를 보여주는 데이터 딕셔너리 뷰입니다. 즉, 복제되는 컬럼의 범위를 플래이버별로 식별할 수 있습니다.

📌 플래이버 컬럼의 역할

  • 복제 데이터의 범위를 조정
  • 다중 환경에서 컬럼별 복제 전략 설계 가능
  • 충돌 해결 로직의 적용 범위 제어

2. 주요 컬럼 설명

컬럼명 설명
FLAVOR_ID 플래이버 고유 식별자
NAME 복제 대상 테이블 이름
COLNAME 플래이버에 포함된 컬럼명
DATA_TYPE 컬럼의 데이터 타입

3. 실무 활용 예시

예시 1: 특정 플래이버에 포함된 컬럼 목록 조회


SELECT NAME, COLNAME, DATA_TYPE
FROM USER_REPFLAVOR_COLUMNS
WHERE FLAVOR_ID = 101;
  

예시 2: 테이블별 플래이버 컬럼 분포 확인


SELECT FLAVOR_ID, NAME, COUNT(*) AS COLUMN_COUNT
FROM USER_REPFLAVOR_COLUMNS
GROUP BY FLAVOR_ID, NAME;
  

예시 3: 특정 테이블의 모든 플래이버별 컬럼 비교


SELECT FLAVOR_ID, COLNAME 
FROM USER_REPFLAVOR_COLUMNS 
WHERE NAME = 'CUSTOMER_INFO'
ORDER BY FLAVOR_ID, COLNAME;
  

4. USER_REPFLAVOR_COLUMNS vs DBA_REPFLAVOR_COLUMNS

항목 USER_REPFLAVOR_COLUMNS DBA_REPFLAVOR_COLUMNS
조회 범위 사용자 소유 플래이버의 컬럼 정보 모든 사용자 플래이버의 컬럼 정보
접근 권한 기본 사용자 권한 DBA 권한 필요
사용 목적 복제 정책 설계 및 확인 전사적 복제 설정 검토 및 감사

5. 실전 전략 및 팁

  • 데이터 보안이나 민감 정보 보호가 필요한 경우, 플래이버에서 해당 컬럼을 제외하여 복제 범위를 제한할 수 있음
  • 사이트별 복제 컬럼 범위가 달라야 하는 경우, 다수의 플래이버를 정의하고 이를 동적으로 설정
  • 충돌 해결 로직은 컬럼 그룹과 함께 이 뷰의 정보를 기준으로 설계

6. 연관 뷰 및 패키지

  • USER_REPFLAVORS – 플래이버 정의 정보
  • USER_REPCOLUMN – 테이블 컬럼의 복제 여부
  • DBMS_REPCAT – 복제 메타데이터 제어 패키지

7. 결론

USER_REPFLAVOR_COLUMNS는 Oracle 복제 환경에서 특정 플래이버가 포함하는 컬럼을 명확히 정의하고 관리할 수 있도록 도와주는 핵심 도구입니다. 이를 통해 환경별로 서로 다른 복제 전략을 유연하게 운용할 수 있으며, 데이터 보안 및 충돌 방지 로직을 설계할 때 반드시 참고해야 할 뷰입니다.

📚 출처

  • Oracle Advanced Replication Concepts and Administration
  • Oracle Database Reference 19c
728x90