📌 PDB란?

PDB (Pluggable Database)는 Oracle의 멀티테넌트 아키텍처(Multitenant Architecture)에서
CDB(Container Database) 안에 플러그(Plug-in) 가능한 독립적인 데이터베이스입니다.

🔑 핵심 개념

  • CDB: 물리적인 컨테이너. 메모리, 프로세스, 백업 등 공유 리소스를 포함
  • PDB: 논리적이고 독립적인 사용자 데이터베이스. 필요한 경우 분리하거나 이식 가능

🎯 쉽게 말하면:
CDB는 아파트 건물, PDB는 개별 세대
→ 리소스는 공유하지만 데이터와 환경은 독립적


🧱 구성 요소 비교

구성 요소설명
CDB (Container Database)전체 DB 인프라. 여러 개의 PDB를 담는 ‘컨테이너’ 역할
PDB (Pluggable Database)독립적인 사용자 데이터베이스. DDL, DML, 유저 관리 가능
SEED PDB새로운 PDB를 만들기 위한 템플릿 역할의 초기 DB
ROOT Container (CDB$ROOT)공통 사용자 및 시스템 레벨 객체 관리 위치

⚙️ Oracle 19c에서의 특징

항목설명
지원 버전Oracle 12c부터 도입, 19c는 성숙한 Multitenant 기능 제공
라이선스19c부터는 1개 PDB는 무료로 사용 가능 (Non-CDB는 비권장)
관리 도구SQL*Plus, DBCA, Enterprise Manager 등 모두 PDB 지원
성능여러 PDB가 하나의 인스턴스(CDB)로 실행되므로 자원 효율↑
보안 격리각 PDB는 사용자, 권한, 테이블 등을 완전 분리하여 관리 가능

🔧 주요 명령어 예시


✅ PDB 목록 확인

SHOW PDBS;


✅ 특정 PDB로 전환

ALTER SESSION SET CONTAINER = pdb1;


✅ 새로운 PDB 생성

CREATE PLUGGABLE DATABASE pdb2 ADMIN USER pdbadmin
  IDENTIFIED BY mypass ROLES = (DBA) 
  FILE_NAME_CONVERT = ('/pdbseed/', '/pdb2/');


✅ PDB 열기/닫기

ALTER PLUGGABLE DATABASE pdb2 OPEN; 
ALTER PLUGGABLE DATABASE pdb2 CLOSE IMMEDIATE;


✅ PDB 삭제

DROP PLUGGABLE DATABASE pdb2 INCLUDING DATAFILES;


📦 장점 요약

장점설명
✅ 관리 효율여러 DB를 하나의 인스턴스로 통합 가능
✅ 빠른 배포템플릿(PDB SEED)으로 신규 DB 생성이 빠름
✅ 개발환경 분리개발/테스트/운영 환경을 같은 인스턴스 내에서 격리 가능
✅ 클라우드 친화Oracle Cloud Infrastructure와의 호환성 우수

❗ 주의할 점

  • Oracle 21c부터는 Non-CDB 아키텍처는 더 이상 지원되지 않습니다
  • 하나의 CDB 내에서 너무 많은 PDB를 운영하면 자원 경쟁 및 관리 복잡도 증가
  • 백업 및 리커버리 정책은 CDB와 PDB 각각에 대해 고려 필요