TIL - Oracle Database Upgrade Paths
DW 마이그레이션 제안서에서 나온 Oracle 버전 업그레이드 관련 내용 정리.
📚 배경
공공기관 DW 시스템에서 Oracle 11g → 19c 또는 12c → 19c 업그레이드가 자주 언급됨. 버전별 차이와 업그레이드 경로 정리.
📊 Oracle 버전 타임라인
11g R2 (2009) → 12c R1 (2013) → 12c R2 (2016) → 18c (2018) → 19c (2019) → 21c (2021) → 23ai (2024)
│ │
└── 멀티테넌트(CDB/PDB) 도입 └── Long Term Support (LTS)
| 버전 | 출시 | 지원 상태 | 비고 |
|---|---|---|---|
| 11g R2 | 2009 | 종료 (2020) | 레거시, 업그레이드 필요 |
| 12c R1 | 2013 | 종료 | CDB/PDB 도입 |
| 12c R2 | 2016 | Extended | |
| 18c | 2018 | 종료 | 연간 릴리스 시작 |
| 19c | 2019 | LTS (2027까지) | 현재 엔터프라이즈 표준 |
| 21c | 2021 | Innovation | 단기 지원 |
| 23ai | 2024 | 최신 LTS | AI 기능 추가 |
19c가 현재 가장 많이 쓰이는 이유: Long Term Support로 2027년까지 지원, 안정성 검증됨.
🔄 업그레이드 경로 비교
11g → 19c
| 항목 | 내용 |
|---|---|
| 직접 업그레이드 | ❌ 불가 |
| 버전 차이 | 2~3세대 점프 |
| 난이도 | 높음 |
| 주요 이슈 | 아키텍처 변화 (Non-CDB → CDB) |
가능한 방법:
방법 1: 단계적 업그레이드
11g → 12c → 19c
(중간 버전 거침)
방법 2: Data Pump Export/Import
11g ─── expdp ───▶ dump file ─── impdp ───▶ 19c
(논리적 마이그레이션)
방법 3: OGG (GoldenGate)
11g ─── OGG 실시간 복제 ───▶ 19c
(무중단 마이그레이션)
방법 4: TTS + OGG 조합
11g ─── TTS (초기) + OGG (동기화) ───▶ 19c
12c → 19c
| 항목 | 내용 |
|---|---|
| 직접 업그레이드 | ✅ 가능 |
| 버전 차이 | 1세대 |
| 난이도 | 상대적으로 쉬움 |
| 주요 이슈 | 파라미터, Deprecated 기능 체크 |
가능한 방법:
방법 1: In-place 업그레이드
12c ─── DBUA (Database Upgrade Assistant) ───▶ 19c
(같은 서버에서 업그레이드)
방법 2: Out-of-place 업그레이드
12c ─── 신규 19c 설치 후 업그레이드 ───▶ 19c
(새 Oracle Home)
방법 3: Data Pump / OGG
(11g와 동일)
⚠️ 11g → 19c 주요 변화
1. 멀티테넌트 아키텍처 (CDB/PDB)
11g (Non-CDB):
Instance ─── Database
└── Schema
19c (CDB/PDB):
Instance ─── CDB (Container Database)
├── Root (CDB$ROOT)
├── Seed (PDB$SEED)
└── PDB (Pluggable Database) ← 실제 애플리케이션 DB
└── Schema
| 용어 | 설명 |
|---|---|
| CDB | Container Database, 전체 컨테이너 |
| PDB | Pluggable Database, 독립적인 DB 단위 |
| Non-CDB | 기존 방식 (11g), 19c에서도 가능하나 deprecated |
⚠️ 주의: 19c에서 Non-CDB 모드는 deprecated. 향후 버전에서 제거 예정.
2. 옵티마이저 변화
| 항목 | 11g | 19c |
|---|---|---|
| Adaptive Plans | 없음 | 기본 활성화 |
| SQL Plan Management | 기본 | 강화됨 |
| 통계 수집 | 수동 위주 | 자동화 강화 |
영향:
- 같은 SQL도 실행 계획이 달라질 수 있음
- 성능 테스트 필수
- SQL Plan Baseline 활용 권장
3. Deprecated/Desupported 기능
| 기능 | 상태 | 대체 |
|---|---|---|
| Oracle Streams | 제거됨 | GoldenGate |
| Advanced Replication | 제거됨 | GoldenGate |
| Non-CDB | Deprecated | CDB/PDB |
| 일부 파라미터 | 제거됨 | 신규 파라미터 |
4. 보안 강화
| 영역 | 변화 |
|---|---|
| 암호 정책 | 대소문자 구분 기본 활성화 |
| 암호화 | TDE (Transparent Data Encryption) 강화 |
| 감사 | Unified Auditing 기본 |
| 권한 | 일부 권한 세분화 |
⚠️ 12c → 19c 주요 변화
12c → 19c는 상대적으로 변화가 적음. 주로 안정화 및 기능 개선.
| 영역 | 변화 |
|---|---|
| Automatic Indexing | 19c 신규 (자동 인덱스 생성) |
| Real-Time Statistics | 통계 실시간 수집 |
| SQL Quarantine | 문제 SQL 자동 격리 |
| 파라미터 | 일부 기본값 변경 |
🛠️ 업그레이드 방법 비교
| 방법 | 다운타임 | 난이도 | 적합한 경우 |
|---|---|---|---|
| DBUA (In-place) | 있음 (시간~일) | 낮음 | 소규모, 다운타임 허용 |
| Data Pump | 있음 | 중간 | 데이터 정리 필요 시 |
| OGG | 최소화 | 높음 | 무중단, 대규모 |
| TTS + OGG | 최소화 | 높음 | 대용량 + 무중단 |
DBUA (Database Upgrade Assistant)
Oracle 제공 GUI 도구로 In-place 업그레이드.
# 19c Oracle Home에서 실행
$ORACLE_HOME/bin/dbuaData Pump
# 11g/12c에서 Export
expdp system/password full=y directory=DATA_PUMP_DIR dumpfile=full.dmp logfile=exp.log
# 19c에서 Import
impdp system/password full=y directory=DATA_PUMP_DIR dumpfile=full.dmp logfile=imp.log📋 업그레이드 전 체크리스트
공통
| 항목 | 확인 |
|---|---|
| 현재 버전 정확히 확인 | ☐ |
| 19c 호환성 매트릭스 확인 | ☐ |
| Deprecated 기능 사용 여부 | ☐ |
| 타사 솔루션 호환성 (ETL, 모니터링 등) | ☐ |
| 충분한 테스트 환경 | ☐ |
| 롤백 계획 | ☐ |
11g → 19c 추가 체크
| 항목 | 확인 |
|---|---|
| CDB/PDB 전환 계획 | ☐ |
| Non-CDB로 갈지 CDB로 갈지 결정 | ☐ |
| Oracle Streams 사용 여부 | ☐ |
| 암호 정책 변경 영향 | ☐ |
Pre-Upgrade Tool
Oracle 제공 사전 점검 스크립트.
# 19c에서 preupgrade.jar 실행
$ORACLE_HOME/jdk/bin/java -jar $ORACLE_HOME/rdbms/admin/preupgrade.jar FILE DIR OUTPUT_DIR출력:
- 필수 조치 사항
- 권장 조치 사항
- 정보성 메시지
📊 업그레이드 시나리오별 권장
| 시나리오 | 권장 방법 |
|---|---|
| 소규모 DB, 다운타임 OK | DBUA 또는 Data Pump |
| 대규모 DB, 다운타임 OK | TTS + Data Pump |
| 무중단 필수 | OGG |
| 대규모 + 무중단 | TTS (초기) + OGG (동기화) |
| 11g + 데이터 정리 필요 | Data Pump (선택적 import) |
💡 정리
| 경로 | 직접 가능 | 권장 방법 |
|---|---|---|
| 11g → 19c | ❌ | Data Pump, OGG, TTS+OGG |
| 12c → 19c | ✅ | DBUA, Data Pump, OGG |
핵심 포인트:
- 19c는 현재 LTS 버전으로 엔터프라이즈 표준
- 11g는 아키텍처 변화 (CDB/PDB)로 인해 신중한 계획 필요
- 대규모/무중단은 OGG 활용
- Pre-Upgrade Tool로 사전 점검 필수