본문 바로가기
Database/Oracle

[ORACLE] USER_REPCONFLICT 완전 정복 : 고급 복제 충돌 감지 및 해결 전략

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

USER_REPCONFLICT 완전 정복 : 고급 복제 충돌 감지 및 해결 전략
[ORACLE] USER_REPCONFLICT

 

USER_REPCONFLICT 뷰는 Oracle 고급 복제(Advanced Replication) 환경에서 데이터 충돌(conflict)을 감지하고 이를 효과적으로 해결하기 위해 사용되는 시스템 뷰입니다. 복제 환경에서는 다중 사이트에서 동일한 데이터를 동시에 변경할 수 있기 때문에, 충돌 발생 가능성을 항상 염두에 두고 있어야 하며, 이 뷰를 통해 충돌 정의 상태를 파악하고 충돌 해결 정책을 수립할 수 있습니다.

1. USER_REPCONFLICT란?

USER_REPCONFLICT는 사용자의 복제 테이블에서 충돌이 정의되어 있는지, 그리고 어떤 종류의 충돌이 설정되어 있는지를 조회할 수 있는 데이터 딕셔너리 뷰입니다. 충돌의 종류는 주로 INSERT, UPDATE, DELETE에 대한 복제 시점의 동시 변경 상황에 해당합니다.

📌 충돌이란?

  • 두 개 이상의 사이트에서 동일한 행(row)을 동시에 변경하거나 삭제할 때 발생
  • 복제 동기화 중 어떤 변경사항을 반영할지를 결정해야 하는 상황

2. 주요 컬럼 설명

컬럼명 설명
NAME 충돌 설정이 정의된 복제 테이블 이름
CONFLICT_TYPE 충돌 유형 (INSERT, UPDATE, DELETE)
RESOLUTION_METHOD 충돌 해결 방법 (e.g., latest timestamp, priority site 등)
GROUP_NAME 충돌에 관련된 컬럼 그룹 이름

3. 실무 활용 예시

예시 1: 설정된 충돌 해결 정책 조회


SELECT NAME, CONFLICT_TYPE, RESOLUTION_METHOD
FROM USER_REPCONFLICT;
  

예시 2: 특정 테이블의 충돌 정의 확인


SELECT * 
FROM USER_REPCONFLICT 
WHERE NAME = 'ORDERS';
  

예시 3: 충돌 유형별 그룹 확인


SELECT CONFLICT_TYPE, GROUP_NAME 
FROM USER_REPCONFLICT 
WHERE GROUP_NAME IS NOT NULL;
  

4. 충돌 유형과 해결 전략 비교

충돌 유형 상황 해결 전략 예시
INSERT 같은 키로 두 사이트에서 동시에 삽입 우선 순위 높은 사이트 선택
UPDATE 동일 행의 컬럼을 동시에 수정 타임스탬프 기준, 사용자 정의 함수 적용
DELETE 한 사이트는 수정, 다른 사이트는 삭제 삭제 우선 처리 또는 복원 후 병합

5. USER_REPCONFLICT vs DBA_REPCONFLICT

항목 USER_REPCONFLICT DBA_REPCONFLICT
조회 대상 사용자 소유 테이블의 충돌 설정 모든 사용자의 충돌 설정
필요 권한 기본 사용자 권한 DBA 권한 필요
주 사용자 복제 구성 개발자 시스템 관리자 및 DBA

6. 실전 팁

  • 충돌 해결 정책은 복제 그룹 생성 후 반드시 설정해야 합니다.
  • 타임스탬프 기반 충돌 해결 시 시스템 간 시간 동기화(NTP)가 필수입니다.
  • 사용자 정의 충돌 해결 함수는 DBMS_REPCAT.RAISE_CONFLICT 절차와 함께 테스트 필요

7. 결론

USER_REPCONFLICT는 Oracle 고급 복제 환경에서 데이터 충돌을 예방하고 해결하기 위한 설정 정보를 확인하는 중요한 도구입니다. 충돌은 복제 시스템의 신뢰성과 데이터 정합성에 영향을 줄 수 있으므로, 이 뷰를 통해 정의된 정책을 정기적으로 검토하고 필요한 경우 사용자 정의 해결 로직을 적용하는 것이 바람직합니다.

📚 출처

  • Oracle Advanced Replication Guide
  • Oracle Database 19c Reference
728x90