본문 바로가기
Database/Oracle

[ORACLE] USER_REPPRIORITY_GROUP 완전 해설 : 복제 충돌을 제어하는 우선순위 정책 구성 방법

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

USER_REPPRIORITY_GROUP 완전 해설 : 복제 충돌을 제어하는 우선순위 정책 구성 방법
[ORACLE] USER_REPPRIORITY_GROUP

 

Oracle의 Advanced Replication 기능을 활용할 때, 데이터 충돌을 처리하는 방식은 시스템 안정성과 정확성에 중대한 영향을 미칩니다. 충돌이 발생했을 때 어떤 데이터를 우선시할지 결정하는 도구가 바로 우선순위 그룹(Priority Group)입니다.

USER_REPPRIORITY_GROUP 뷰는 사용자가 생성한 우선순위 그룹의 정보를 조회할 수 있는 Oracle 데이터 딕셔너리 뷰로, 충돌 해결 정책을 설계하거나 감사할 때 핵심적인 정보를 제공합니다. 본 글에서는 이 뷰의 구조, 사용 목적, 실무 적용 예제 및 유사 뷰와의 비교까지 실전 중심으로 정리합니다.

1. USER_REPPRIORITY_GROUP 뷰란?

USER_REPPRIORITY_GROUP은 복제 충돌 해결을 위한 우선순위 정책 설정 시, 사용자가 정의한 우선순위 그룹에 대한 메타 정보를 제공하는 뷰입니다. 이 그룹은 특정 컬럼 값을 기준으로 충돌 시 어떤 데이터가 우선 적용될지를 결정하는 데 사용됩니다.

2. 주요 컬럼 설명

컬럼명 설명
PRIORITY_GROUP 우선순위 그룹 이름
GNAME 해당 그룹이 속한 복제 그룹 이름
SNAME 스키마 이름
ONAME 대상 테이블(또는 객체)의 이름
REFERENCE_NAME 우선순위 판단 기준이 되는 컬럼 이름

3. 사용 목적 및 장점

  • 우선순위 정책이 설정된 컬럼과 객체 정보를 명확히 파악
  • 충돌 해결이 어떤 기준에 따라 이루어지는지 분석
  • 다중 사이트 복제 환경에서 정책 일관성 확보
  • 문제 발생 시 신속한 진단 및 정책 조정 가능

4. 실전 예제: 사용자 우선순위 그룹 조회


SELECT PRIORITY_GROUP, REFERENCE_NAME, ONAME
FROM USER_REPPRIORITY_GROUP
WHERE GNAME = 'SALES_REPGRP';
  

이 쿼리는 SALES_REPGRP 복제 그룹 내 정의된 우선순위 그룹을 확인하는 데 사용됩니다.

5. 우선순위 그룹 생성 예제

아래 PL/SQL 코드는 고객 테이블의 지점(branch_id) 기준으로 우선순위 그룹을 생성하는 예입니다.


BEGIN
  DBMS_REPCAT.ADD_PRIORITY_GROUP(
    gname           => 'SALES_REPGRP',
    sname           => 'HR',
    oname           => 'CUSTOMERS',
    reference_name  => 'BRANCH_ID',
    priority_group  => 'BRANCH_PRIORITY');
END;
  

6. 관련 뷰 비교표

뷰 이름 기능 포함 정보 사용 권한 범위
USER_REPPRIORITY_GROUP 우선순위 그룹 메타데이터 조회 사용자 정의 그룹 본인 계정
USER_REPPRIORITY 그룹 내 항목별 우선순위 값 조회 값, 순위 본인 계정
ALL_REPPRIORITY_GROUP 다른 사용자 우선순위 그룹도 포함 전체 접근 가능한 그룹 권한 있는 사용자
DBA_REPPRIORITY_GROUP 전체 DB 우선순위 정책 확인 모든 사용자 그룹 DBA

7. 오류 예방을 위한 체크리스트

  • REFERENCE_NAME 컬럼이 실제로 테이블에 존재하는지 확인
  • PRIORITY_GROUP 이름의 중복 여부 확인
  • 우선순위 그룹 생성 후 반드시 ADD_PRIORITY_VALUE로 값 추가
  • 테스트 환경에서 충돌 시뮬레이션 후 운영 반영

8. 자주 묻는 질문 (FAQ)

Q1. 우선순위 그룹을 삭제할 수 있나요?

A. 네. DBMS_REPCAT.REMOVE_PRIORITY_GROUP을 통해 삭제할 수 있습니다. 단, 기존에 참조하고 있는 충돌 정책이 있다면 제거 전에 점검이 필요합니다.

Q2. 하나의 컬럼에 여러 우선순위 그룹을 지정할 수 있나요?

A. 아니요. 동일한 객체와 컬럼에는 하나의 우선순위 그룹만 등록 가능합니다. 중복되면 오류가 발생합니다.

Q3. 어떤 충돌 해결 정책과 연계되나요?

A. 우선순위 그룹은 주로 DBMS_REPCAT.ADD_UPDATE_RESOLUTION 또는 ADD_DELETE_RESOLUTION에서 PRIORITY 정책 유형과 함께 사용됩니다.

9. 결론

USER_REPPRIORITY_GROUP 뷰는 Oracle 복제 충돌 해결 시스템의 정책 구조를 명확하게 이해하고 관리할 수 있는 핵심 도구입니다. 복잡한 멀티사이트 환경에서 우선순위 기반 충돌 제어는 데이터 정합성과 신뢰성을 유지하는 데 반드시 필요한 전략입니다. 이 뷰를 통해 현재 시스템이 어떤 우선순위 정책을 따르고 있는지 정확히 파악하고, 필요한 경우 유연하게 정책을 조정할 수 있습니다.

10. 참고 문헌

  • Oracle Database Advanced Replication Guide – Oracle 공식 문서
  • Oracle PL/SQL Packages and Types Reference – DBMS_REPCAT
728x90