
Oracle의 고급 복제(Advanced Replication) 기능은 여러 데이터베이스 간의 데이터 일관성과 동기화를 유지하기 위한 체계를 제공합니다. 복제 그룹(Replication Group)을 통해 여러 객체를 논리적으로 묶어서 관리하는데, 이때 각 객체가 속한 스키마(Schema) 정보는 매우 중요합니다. Oracle은 복제 그룹에 포함된 스키마 정보를 관리하기 위해 USER_REPSCHEMA라는 데이터 딕셔너리 뷰를 제공합니다. 이 문서에서는 해당 뷰의 구조, 주요 용도, 관련 기능 및 실무에서의 활용 방안을 상세히 다루겠습니다.
1. USER_REPSCHEMA 뷰란?
USER_REPSCHEMA는 현재 사용자 계정에서 소유한 복제 그룹에 속한 스키마 정보를 제공하는 Oracle 데이터 딕셔너리 뷰입니다. 이 뷰는 복제 구성 시 어떤 스키마가 어떤 복제 그룹에 등록되어 있는지를 확인할 수 있도록 도와줍니다.
2. 주요 컬럼 설명
| 컬럼명 | 설명 |
|---|---|
| GNAME | 복제 그룹 이름 (Replication Group Name) |
| SNAME | 스키마 이름 (Schema Name) |
| MASTER | 해당 스키마가 마스터 사이트인지 여부 (Y/N) |
3. 사용 목적 및 활용 예시
- 복제 그룹에 포함된 스키마를 확인하여 권한 및 정책 설정
- 다중 사용자 환경에서 복제 그룹의 구성 구조 파악
- 복제 오류 발생 시 해당 스키마 중심으로 문제 추적
- 마스터 사이트 역할을 수행하는 스키마 구분
4. 실전 예제: 마스터 스키마 조회
SELECT GNAME, SNAME
FROM USER_REPSCHEMA
WHERE MASTER = 'Y';
이 쿼리는 현재 사용자 계정 내에서 마스터 역할을 수행하는 스키마 목록을 반환합니다.
5. 복제 그룹과 스키마의 관계 이해
복제 그룹은 복제될 객체를 묶어 관리하는 논리 단위이며, 이 그룹에 포함된 객체는 모두 특정 스키마에 소속됩니다. 따라서 복제 그룹 관리 시 스키마 단위의 등록 및 해제가 매우 중요하며, 이때 USER_REPSCHEMA 뷰를 통해 스키마의 상태와 역할을 파악할 수 있습니다.
6. 관련 뷰 비교표
| 뷰 이름 | 내용 | 주요 용도 | 조회 범위 |
|---|---|---|---|
| USER_REPSCHEMA | 복제 그룹 내 사용자 스키마 정보 | 복제 스키마 구성 파악 | 자신의 복제 그룹 |
| USER_REPOBJECT | 복제 그룹에 포함된 객체 정보 | 복제 대상 객체 관리 | 자신의 객체 |
| DBA_REPSCHEMA | DB 전체의 복제 스키마 정보 | 시스템 전반 관리 | DBA 전용 |
7. 스키마 등록 예시
복제 스키마를 등록하려면 다음과 같은 절차를 따릅니다.
BEGIN
DBMS_REPCAT.CREATE_MASTER_REPGROUP(gname => 'HR_REPGRP');
DBMS_REPCAT.ADD_MASTER_DATABASE(
gname => 'HR_REPGRP',
master => 'hr_db',
use_existing_objects => TRUE);
END;
이 작업 후 USER_REPSCHEMA에서 해당 스키마가 복제 그룹에 등록되었는지 확인할 수 있습니다.
8. 자주 묻는 질문 (FAQ)
Q1. USER_REPSCHEMA에 아무 데이터도 보이지 않습니다. 왜인가요?
A. 현재 사용자 계정이 복제 그룹에 참여하고 있지 않거나, 복제 그룹 자체가 생성되지 않은 경우입니다.
Q2. MASTER 컬럼이 ‘N’이면 어떤 의미인가요?
A. 해당 스키마가 복제 그룹에서 읽기 전용 또는 스냅샷 사이트로 구성된 경우입니다.
Q3. 복제 그룹에서 스키마를 제거하려면 어떻게 하나요?
A. DBMS_REPCAT.REMOVE_MASTER_DATABASE를 사용하여 제거할 수 있습니다. 단, 종속 객체가 모두 제거되어야 합니다.
9. 결론
USER_REPSCHEMA 뷰는 Oracle 복제 환경에서 스키마 단위 복제 구성을 파악하고 관리하기 위한 핵심 도구입니다. 복제 그룹의 구조를 명확히 이해하고, 오류 추적 및 권한 관리를 효과적으로 수행하려면 이 뷰의 내용을 숙지하는 것이 매우 중요합니다.
10. 참고 문헌
- Oracle Database Advanced Replication Guide – Oracle 공식 문서
- Oracle PL/SQL Packages and Types Reference – DBMS_REPCAT
'Database > Oracle' 카테고리의 다른 글
| [ORACLE] USER_RESOURCE_LIMITS 완전 해설 : 사용자별 리소스 제한 정책 확인과 실무 활용 (0) | 2025.08.06 |
|---|---|
| [ORACLE] USER_REPSITES 완전 해설 : 복제 그룹 내 사이트 구조를 이해하는 핵심 뷰 (0) | 2025.08.06 |
| [ORACLE] USER_REPRESOL_STATS_CONTROL 해설 : 복제 충돌 통계 수집을 제어하는 핵심 뷰 (0) | 2025.08.05 |
| [ORACLE] USER_REPRESOLUTION_STATISTICS 해설 : 복제 충돌 해결 통계로 보는 시스템 신뢰도 (0) | 2025.08.05 |
| [ORACLE] USER_REPRESOLUTION_METHOD 완전 해설 : 복제 충돌 해결 방법 정의와 활용 가이드 (0) | 2025.08.05 |