
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
'Database > Oracle' 카테고리의 다른 글
| [ORACLE] USER_REPPROP 완전 해설 : 오라클 복제 전파 속성 관리의 핵심 뷰 분석 (0) | 2025.08.05 |
|---|---|
| [ORACLE] USER_REPRESOLUTION 완전 분석 : 복제 충돌 해결 정책을 한눈에 파악하는 핵심 뷰 (0) | 2025.08.05 |
| [ORACLE] USER_REPPRIORITY 완벽 해설 : 충돌 해결 우선순위 정책의 핵심 구조 (0) | 2025.08.05 |
| [ORACLE] USER_REPPARAMETER_COLUMN 분석 : 복제 충돌 해결의 핵심 파라미터 열 추적 가이드 (0) | 2025.08.05 |
| [ORACLE] USER_REPOBJECT 완전 해부 : 오라클 복제 객체의 구조와 활용 (0) | 2025.08.04 |