본문 바로가기
Database/Oracle

[ORACLE] USER_REPGENERATED 가이드 : 오라클 복제 지원 객체 상태 점검 전략

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

USER_REPGENERATED 가이드 : 오라클 복제 지원 객체 상태 점검 전략
[ORACLE] USER_REPGENERATED

 

 

USER_REPGENERATED는 Oracle 고급 복제(Advanced Replication) 환경에서 복제 지원을 위해 자동 생성된 객체의 정보를 보여주는 데이터 딕셔너리 뷰입니다. 복제 대상 객체가 정상적으로 복제되기 위해 필요한 트리거, 패키지, 시퀀스 등이 적절히 생성되었는지를 이 뷰를 통해 확인할 수 있습니다.

1. USER_REPGENERATED란?

USER_REPGENERATED는 사용자의 복제 그룹 내 복제 대상 객체에 대해 오라클이 생성한 **지원 객체(replication support object)** 목록과 생성 상태를 나타내는 뷰입니다. 이는 DBMS_REPCAT.GENERATE_REPLICATION_SUPPORT 프로시저 호출 결과로 생성되며, 복제 작동에 필요한 인프라의 핵심 점검 포인트입니다.

📌 생성되는 복제 지원 객체 예시

  • AFTER ROW 트리거 (데이터 변경 추적용)
  • 패키지와 프로시저 (변경 로깅 처리)
  • 시퀀스, 내부 로그 테이블 등

2. 주요 컬럼 설명

컬럼명 설명
NAME 복제 대상 객체 이름 (테이블 등)
SNAME 해당 객체가 포함된 스키마 이름
GEN_FLAG 복제 지원 객체 생성 여부 (Y/N)
GEN_DATE 지원 객체가 생성된 날짜
STATUS 객체 생성 결과 상태 (VALID, ERROR 등)

3. 실무 활용 예시

예시 1: 복제 지원이 생성된 테이블 목록


SELECT NAME, STATUS, GEN_DATE
FROM USER_REPGENERATED
WHERE GEN_FLAG = 'Y';
  

예시 2: 생성에 실패한 객체 점검


SELECT NAME, STATUS
FROM USER_REPGENERATED
WHERE STATUS != 'VALID';
  

예시 3: 특정 테이블의 복제 지원 상태 확인


SELECT * 
FROM USER_REPGENERATED 
WHERE NAME = 'ORDERS';
  

4. USER_REPGENERATED vs DBA_REPGENERATED

항목 USER_REPGENERATED DBA_REPGENERATED
조회 범위 자신의 복제 대상 객체만 모든 사용자 복제 대상 객체
접근 권한 기본 사용자 권한 DBA 권한 필요
활용 대상 복제 구성 사용자 시스템 관리자 및 DBA

5. 실전 팁 및 전략

  • GEN_FLAG = 'N'이거나 STATUS != 'VALID'인 경우 복제 문제가 발생할 수 있으므로 즉시 점검 필요
  • 지원 객체가 재생성되어야 할 경우 DBMS_REPCAT.GENERATE_REPLICATION_SUPPORT 재실행
  • 스키마 변경 후(예: 컬럼 추가) 이 뷰를 반드시 확인하여 복제 지원이 최신 상태인지 검증 필요
  • DDL 변경 시에는 복제 그룹을 QUIESCED 상태로 전환 후 수행

6. 연관 뷰 및 패키지

  • USER_REPCAT – 복제 그룹 정보
  • USER_REPOBJECT – 복제 대상 객체 목록
  • USER_REPDDL – 복제 대상 객체의 DDL 전파 정보
  • DBMS_REPCAT – 복제 설정 및 지원 객체 관리 패키지

7. 결론

USER_REPGENERATED는 오라클 복제 환경에서 복제 대상 객체의 지원 구조가 적절히 생성되었는지를 확인할 수 있는 매우 중요한 도구입니다. 이 뷰를 통해 복제 트리거, 패키지, 내부 로깅 구조의 생성 상태를 주기적으로 점검함으로써 고급 복제의 안정성과 무결성을 확보할 수 있습니다.

📚 출처

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