CDB (Container Database) 개요
CDB(Container Database)는 멀티테넌트 아키텍처에서 컨테이너 역할을 하는 오라클 데이터베이스입니다.
즉, 여러 개의 PDB (Pluggable Database)를 포함할 수 있는 하나의 물리적 데이터베이스입니다.
CDB와 PDB의 관계
CDB는 여러 개의 PDB를 포함하는 컨테이너 구조이며, PDB는 CDB 안에 삽입되는 독립적인 데이터베이스입니다.
- CDB (Container Database)
- 데이터 파일, 제어 파일, 리두 로그를 관리하는 물리적인 데이터베이스
- 여러 개의 PDB를 포함할 수 있음
- SYS 및 SYSTEM 계정이 존재하고 CDB 전체를 관리
- PDB (Pluggable Database)
- CDB에 종속되지만, 논리적으로 독립적인 데이터베이스
- 개별적으로 애플리케이션을 실행할 수 있음
- CDB 내부에서 생성/삭제/이동 가능
- 각 PDB는 자체적인 사용자 및 객체를 가질 수 있음
CDB 구조
CDB는 기본적으로 3가지 컨테이너로 구성됩니다.
| 컨테이너 | 설명 |
| ROOT (CDB$ROOT) | 전체 CDB를 관리하는 최상위 컨테이너 |
| SEED (PDB$SEED) | 새로운 PDB 생성을 위한 템플릿 역할 |
| PDB (Pluggable Database) | 사용자가 생성하는 개별 데이터베이스 |
CDB의 장점
- 리소스 절약
- 하나의 CDB에 여러개의 PDB를 포함하여 관리 → 하드웨어 및 메모리 절감
- 동일한 인스턴스를 공유하므로 비용 효율적
- 쉽고 빠른 PDB 이동 및 백업
- PDB를 간편하게 다른 CDB로 이동 (Unplug/Plug)
- 개별 PDB 단위로 백업 및 복구 가능
- 버전 업그레이드 및 패치 용이
- CDB에 대한 업그레이드만으로 모든 PDB에 적용 가능
- 보안 및 격리 강화
- 각 PDB는 독립적이므로 다른 PDB에 영향을 주지 않음
- 사용자 및 권한을 PDB별로 개별 관리 가능
CDB 활용 예시
예시1: 하나의 CDB에서 여러 개의 PDB 운영
- 은행 시스템: 고객 정보, 대출 정보, 계좌 정보를 각각 다른 PDB로 분리하여 운영 가능
- ERP시스템: 인사, 회계, 재고 관리를 개별 PDB로 나누어 활용 가능
예시2: 클라우드 환경에서 여러 테넌트 지원
- SaaS환경에서 다수의 고객이 각각의 PDB를 사용
- 하나의 CDB로 여러 개의 기업 고객을 지원 가능
CDB vs 비-CDB 비교
| 비교 항목 | CDB (Container Database) | 비-CDB (Non-Container Database) |
| 데이터베이스 개수 | 하나의 CDB 안에 여러 개의 PDB 포함 | 독립적인 개별 데이터베이스 |
| 자원 공유 | 여러 PDB가 인스턴스, 메모리를 공유 | 개별적으로 관리해야 함 |
| 유지보수 | CDB 단위로 업그레이드 및 패치 가능 | 각 DB별로 개별 적용 필요 |
| PDB 이동 | PDB를 Unplug/Plug 가능 | 데이터베이스 자체를 백업/복구해야 함 |
| 사용 사례 | 클라우드, 멀티테넌트 환경, 리소스 절약 | 전통적인 단일 데이터베이스 운영 |
결론
- CDB는 오라클의 멀티테넌트 아키텍처로 설계된 효율적인 구조
- 여러 개의 PDB를 포함하여 리소스를 절감학고 관리 편의성을 높일 수 있음
- 클라우드 및 엔터프라이즈 환경에서 강력한 확장성과 유연성을 제공
CDB의 특징
1) 두 개의 기본 컨테이너 포함
Root Container
- CDB 전체를 관리하는 최상위 컨테이너
- 시스템 메타데이터 저장 (사용자 데이터 없음)
Seed PDB
- 새로운 PDB 생성을 위한 템플릿 역할
- 직접 변경 불가
컨테이너별 테이블스페이스 및 데이터 파일
각 컨테이너는 독립적인 테이블스페이스를 가짐
| 컨테이너 | 테이블스페이스 |
| Root (CDB$ROOT) | SYSTEM, SYSAUX, TEMP (시스템 메타데이터 저장) |
| Seed (PDB$SEED) | SYSTEM, SYSAUX, TEMP (PDB 템플릿용) |
| PDB (사용자 생성) | 개별적으로 SYSTEM, SYSAUX, TEMP, UNDO 생성 가능 |
1. 주요 Data Dictionary View 종류
| 뷰 유형 | 설명 |
| DBA_xxx | CDB$ROOT 또는 PDB 내 모든 객체 조회 |
| ALL_xxx | 현재 사용자가 접근 가능한 객체 조회 (PDB 내) |
| USER_xxx | 현재 사용자가 소유한 객체만 조회 (PDB 내) |
2. CDB와 PDB에서 DBA_xxx 뷰의 동작 방식
- Root (CDB$ROOT)에서 DBA_xxx 조회
- 공통 사용자(Common Users) 만 표시됨
- Root 컨테이너(CDB$ROOT) 내 객체만 조회됨
- PDB에서 DBA_xxx 조회
- 공통 사용자 + 로컬 사용자 표시됨
- 현재 PDB 내 객체만 조회됨
'oracle DB' 카테고리의 다른 글
| [Admin] Instance Failure & Recovery (0) | 2025.03.18 |
|---|---|
| [Admin] WS 복습 ★ (0) | 2025.03.17 |
| [Admin] 9. 언두 데이터 관리 _ (0) | 2025.03.12 |
| [Admin] 8. 공간 관리 (3) (0) | 2025.03.11 |
| [Admin] 8. 공간 관리 (2) _2.6 복습하기 (0) | 2025.03.11 |