728x90

USER_REPCATLOG 뷰는 Oracle 고급 복제(Advanced Replication) 환경에서 발생한 각종 작업 및 동기화 관련 로그를 저장하고 추적할 수 있도록 지원하는 데이터 딕셔너리 뷰입니다. 복제 중 발생한 오류나 대기 중인 작업 상태를 추적하는 데 필수적인 도구로, 실무에서의 데이터 일관성 확보와 장애 대응에 매우 중요합니다.
1. USER_REPCATLOG이란?
USER_REPCATLOG는 사용자가 소유한 복제 그룹에 대해 발생한 변경 로그 및 작업 상태를 기록하는 시스템 뷰입니다. 이 뷰는 특히 DBMS_REPCAT 패키지를 사용한 복제 작업의 상태, 오류 발생 내역, 작업의 진행 여부 등을 추적할 때 사용됩니다.
🔎 주요 기능
- 복제 관련 DDL 실행 로그 확인
- 복제 오류 및 재처리 대상 식별
- 복제 로그 처리 지연 또는 실패 분석
2. 주요 컬럼 설명
| 컬럼명 | 설명 |
|---|---|
| USERNAME | 작업을 요청한 사용자 |
| REQUEST | 수행된 작업 명령 (e.g., CREATE_MASTER_REPGROUP) |
| STATUS | 작업의 현재 상태 (e.g., GENERATED, ERROR, DONE) |
| GENERATED | 로그 생성 일시 (DATE) |
| ERROR_NUMBER | 오류 발생 시의 ORA 에러 번호 |
| ERROR_MSG | 상세 오류 메시지 |
| JOB | 관련 DBMS_JOB 번호 |
3. 실무 활용 예시
예시 1: 복제 작업 오류 내역 조회
SELECT USERNAME, REQUEST, ERROR_NUMBER, ERROR_MSG
FROM USER_REPCATLOG
WHERE STATUS = 'ERROR';
예시 2: 현재 실행 중인 복제 작업 확인
SELECT *
FROM USER_REPCATLOG
WHERE STATUS = 'GENERATED';
예시 3: 특정 시점 이후의 로그 확인
SELECT *
FROM USER_REPCATLOG
WHERE GENERATED > SYSDATE - 7;
4. USER_REPCATLOG vs DBA_REPCATLOG 비교
| 항목 | USER_REPCATLOG | DBA_REPCATLOG |
|---|---|---|
| 조회 대상 | 자신이 소유한 복제 로그 | 전체 사용자 복제 로그 |
| 권한 요구 | 기본 사용자 권한 | DBA 권한 필요 |
| 활용 주체 | 복제 작업 중인 개발자 | 시스템 관리자, DBA |
5. 복제 로그 오류 대응 전략
- ORA-23308: 복제 오브젝트가 잘못되었을 때 발생 → 오브젝트 유효성 재확인
- ORA-23375: 복제 그룹 상태 불일치 → 마스터 정의 사이트에서 상태 복구
- DBMS_REPCAT.SUSPEND_MASTER_ACTIVITY를 통해 오류 수정 후 재시도
- 관련 JOB 번호를 통해
DBMS_JOB관리로 재처리 가능
6. 복제 로그 관리 팁
- 정기적으로 USER_REPCATLOG를 모니터링하여 지연되거나 실패한 작업을 빠르게 식별해야 합니다.
- 복제 로그가 쌓이는 경우, 시스템 부하 증가의 원인이 될 수 있으므로 오래된 로그는 수동 정리하는 것이 좋습니다.
- 재시도가 필요한 오류는
DBMS_DEFER_SYS.EXECUTE_ERROR패키지를 사용하여 수동 실행할 수 있습니다.
7. 결론
USER_REPCATLOG는 오라클 복제 환경에서 복제 작업의 성공/실패 여부를 추적하고, 오류 발생 시 정확한 원인을 파악하는 데 핵심적인 도구입니다. 정기적인 점검과 자동화된 로그 감시 스크립트를 통해 복제 환경의 안정성과 일관성을 유지할 수 있습니다. 특히 다중 사이트 동기화를 구성한 기업 환경에서는 필수적인 보안 및 운영 점검 수단으로 활용할 수 있습니다.
📚 출처
- Oracle Database Advanced Replication Guide
- Oracle Database Reference (19c)
- Oracle Support Document ID 159677.1 - Managing Replication Errors
- https://docs.oracle.com/en/database/
728x90
'Database > Oracle' 카테고리의 다른 글
| [ORACLE] USER_REPCOLUMN_GROUP 완전 정복 : 컬럼 그룹 기반 복제 전략 (0) | 2025.08.01 |
|---|---|
| [ORACLE] USER_REPCOLUMN 완전 정복 : 컬럼 단위 복제 설정과 활용 전략 (0) | 2025.07.31 |
| [ORACLE] USER_REPCAT 뷰 완전 해부 : 고급 복제 환경에서의 실전 활용법 (0) | 2025.07.31 |
| [ORACLE] USER_REPAUDIT_COLUMN 뷰의 이해와 실무 활용법 (0) | 2025.07.31 |
| [ORACLE] USER_REPAUDIT_ATTRIBUTE 뷰의 실전 활용 가이드 (0) | 2025.07.31 |