728x90

1. DATABASE_COMPATIBLE_LEVEL이란?
Oracle의 DATABASE_COMPATIBLE_LEVEL은 데이터베이스가 사용하는 내부 구조와 기능의 호환 수준을 정의하는 중요한 설정값입니다. 업그레이드 또는 기능 활성화 시 이 값을 기준으로 동작 버전이 결정되며, 과거 버전의 동작 방식 또는 최신 기능 사용 여부를 제어합니다. 이는 특히 복잡한 시스템 마이그레이션이나 멀티 버전 혼재 환경에서 매우 중요한 역할을 하며, DBA가 반드시 숙지해야 할 핵심 파라미터입니다.
2. 주요 특징과 장점
| 특징 | 설명 |
|---|---|
| 호환성 제어 | 구버전과의 호환 또는 최신 기능 활성화 여부 결정 |
| 안정성 확보 | 운영 중 예기치 않은 기능 적용 방지 |
| 선택적 업그레이드 전략 | 기능 충돌 최소화하며 단계적 마이그레이션 가능 |
3. 설정 방식과 조회 방법
DATABASE_COMPATIBLE_LEVEL은 초기 생성 시 설정할 수 있으며, 생성 후에는 변경이 불가능합니다. 조회하려면 다음과 같은 SQL을 사용합니다:
SELECT name, value
FROM v$parameter
WHERE name = 'compatible';
예를 들어 Oracle 19c 데이터베이스라면 다음과 같이 보입니다:
NAME VALUE
----------- -------
compatible 19.0.0
4. 업그레이드 전략과 호환성 관리
- 단계별 호환성 상승: 12c → 19c 호환성 레벨 설정 후 테스트
- 롤백 고려: 호환 레벨 낮추는 것은 불가능하므로 복구 전략 수립
- 플래그 기능 활성화: 최신 기능은 compatible 레벨 이상에서만 동작
- 혼재 환경 대응: PDB마다 다른 호환 레벨 관리 가능 (멀티테넌트)
5. 실무 검토 및 진단 시나리오
| 상황 | 검토 포인트 | 검토 목적 |
|---|---|---|
| 데이터베이스 업그레이드 전 | compatible 값 확인, 테스트 환경 검증 | 기존 기능 유지 확인 |
| 기능 장애 발생 시 | 호환 레벨과 지원 기능 비교 | 호환성 미지원 기능 여부 확인 |
| 멀티테넌트 운영 | PDB 호환 레벨 일관성 점검 | 운영 영향 및 혼선 방지 |
6. 구성 변경 시 주의사항 및 제한
- 호환 레벨은 상위 버전만 지정 가능 (낮은 버전 호환 설정 불가)
- 한 번 설정된 값은 ALTER DATABASE 명령으로 변경 불가
- 롤백 필요 시 RMAN 복제 또는 데이터 import/export 활용
- 복잡한 마이그레이션엔 DB 클론 전략 권장
7. 요약 비교: 호환 레벨과 주요 버전별 가능 기능
| 버전 기준 | compatible 설정 값 | 활성 기능 예시 | 잘못 설정 시 위험 |
|---|---|---|---|
| 12.2 | 12.2.0 | JSON 기능, automatic indexing | 최신 19c 기능 미지원 |
| 19c | 19.0.0 | In-Memory, Hybrid Columnar Compression, Automatic Indexing | 롤백 불가, 이전 버전 호환 제한 |
8. 실무 적용 팁
- 초기 db 생성 시 올바른 호환 레벨 설정 중요
- 테스트 환경에서 기능 검증 후 운영 시스템 반영
- 운영 DBA는 정기적으로 compatible 파라미터 점검
- 멀티테넌트 환경에서 PDB 호환성 점검 자동화 스크립트 도입
출처
- Oracle Database Administrator’s Guide 21c – Oracle Corporation
- Oracle Multitenant Concepts – Oracle Docs
- Oracle Upgrading to 19c – Thomas Kyte
728x90
'Database > Oracle' 카테고리의 다른 글
| [ORACLE] DBMS_LOCK_ALLOCATED 완전 가이드 : 락 할당 상태 분석과 성능 최적화 전략 (0) | 2025.07.31 |
|---|---|
| [ORACLE] DBMS_ALERT_INFO 완전 분석 : 실시간 알림 시스템과 통지 아키텍처 (0) | 2025.07.31 |
| [ORACLE] COLUMN_PRIVILEGES 완전 분석 : 컬럼 단위 권한 파악과 보안 통제 전략 (0) | 2025.07.30 |
| [ORACLE] AUDIT_ACTIONS 뷰 완벽 분석 : 감사 코드 해석과 실무 적용 전략 (0) | 2025.07.30 |
| [ORACLE] DICT_COLUMNS 뷰 완전 해부 : 데이터 딕셔너리의 구조를 꿰뚫는 메타데이터 탐색법 (0) | 2025.07.30 |