본문 바로가기
Database/Oracle

[ORACLE] USER_REPDDL 분석 가이드 : 복제 환경에서의 DDL 명령 추적 전략

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

USER_REPDDL 분석 가이드 : 복제 환경에서의 DDL 명령 추적 전략
[ORACLE] USER_REPDDL

 

USER_REPDDL은 Oracle 고급 복제(Advanced Replication) 환경에서 수행된 DDL(Data Definition Language) 명령의 내역을 추적할 수 있도록 설계된 데이터 딕셔너리 뷰입니다. 복제 대상 오브젝트의 구조 변경, 예를 들어 테이블 컬럼 추가, 인덱스 생성, 제약조건 변경 등이 실시간 동기화 시스템에 어떤 영향을 주었는지 확인할 수 있는 유용한 로그 뷰입니다.

1. USER_REPDDL이란?

고급 복제를 사용하는 경우, 복제 그룹에 포함된 객체에 대한 DDL 변경 사항은 전파되어야 하며, 이때 USER_REPDDL 뷰는 해당 명령이 언제, 어떤 형식으로 등록되었고, 어떤 상태인지를 추적하는 데 사용됩니다.

📌 주요 목적

  • 복제 대상 객체의 구조 변경 감시
  • DDL 작업의 전파 상태 확인
  • 변경 내역의 오류 감지 및 대응

2. 주요 컬럼 설명

컬럼명 설명
DDL_NUM 고유 DDL 작업 번호
GNAME 관련 복제 그룹 이름
MASTER DDL 명령이 수행된 마스터 사이트
STATUS 명령 상태 (e.g., GENERATED, PROPAGATED, ERROR)
DDL_TEXT 실행된 DDL 명령의 SQL 텍스트
GENERATION_DATE DDL 명령 생성 일시

3. 실무 활용 예시

예시 1: 최근 수행된 DDL 명령 확인


SELECT DDL_NUM, GNAME, STATUS, GENERATION_DATE
FROM USER_REPDDL
ORDER BY GENERATION_DATE DESC;
  

예시 2: 실패한 DDL 전파 확인

DDL이 에러 상태로 남아있는 경우, 수동 조치가 필요할 수 있습니다.


SELECT * 
FROM USER_REPDDL
WHERE STATUS = 'ERROR';
  

예시 3: 전체 DDL 텍스트 내용 분석


SELECT DDL_TEXT
FROM USER_REPDDL
WHERE DDL_NUM = 102;
  

4. USER_REPDDL vs DBA_REPDDL

항목 USER_REPDDL DBA_REPDDL
대상 범위 사용자 소유 복제 그룹 내의 DDL 작업 모든 사용자 복제 그룹의 DDL 작업
접근 권한 기본 사용자 권한 DBA 권한 필요
사용자 유형 복제 사용자, 개발자 DB 관리자, 감사자

5. DDL 복제 시 주의사항

  • DDL 명령은 트랜잭션 제어를 받지 않으므로 신중히 수행해야 합니다.
  • 테이블 구조 변경 전에는 반드시 복제 그룹을 QUIESCED 상태로 전환해야 안정성이 확보됩니다.
  • DDL 오류 발생 시 DBMS_REPCAT.SHOW_DDL 또는 EXECUTE_DDL을 수동 실행할 수 있습니다.

6. 관련 뷰 및 패키지

  • USER_REPCATLOG – 전반적인 복제 작업 로그
  • DBMS_REPCAT.GENERATE_REPLICATION_SUPPORT – 복제 지원 구조 생성
  • DBMS_DEFER_SYS – 전파 오류 수동 처리

7. 결론

USER_REPDDL 뷰는 Oracle 고급 복제 환경에서 구조 변경 사항의 전파 여부를 추적하고 문제를 조기에 파악하는 데 매우 유용합니다. 특히 다중 마스터 복제 환경에서는 구조 변경이 각 사이트에 미치는 영향을 즉시 확인하고, 오류가 발생할 경우 적절한 대응을 하기 위해 이 뷰의 활용이 필수적입니다.

📚 출처

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