[Admin] CDB

2025. 3. 17. 16:53·oracle DB

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
'oracle DB' 카테고리의 다른 글
  • [Admin] Instance Failure & Recovery
  • [Admin] WS 복습 ★
  • [Admin] 9. 언두 데이터 관리 _
  • [Admin] 8. 공간 관리 (3)
strongyoung
strongyoung
  • strongyoung
    all is well
    strongyoung
  • 전체
    오늘
    어제
    • 분류 전체보기 (78)
      • Healthcare (4)
        • Data Architecture (1)
        • Intern (3)
      • oracle DB (28)
      • Bio analysis (11)
        • ML (2)
        • mini project (1)
        • final project (0)
      • Project (1)
      • paper (3)
        • paper review (1)
      • study (16)
        • certificate (12)
      • coding test (14)
        • Programmers_Python (10)
        • Programmers_OracleSQL (0)
        • 구름LEVEL_Python (4)
  • 블로그 메뉴

    • 홈
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    코테
    Oracle
    코딩테스트
    oracle ws
    프로그래머스
    인스턴스복구
    구름레벨코테
    1단계코테
    프로그래머스입문
    구름레벨파이썬
    오라클
    의료영상분할
    코딩입문
    DBA
    oracledbms
    파이썬
    코테1단계
    Admin
    구름LEVEL
    구름레벨
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
strongyoung
[Admin] CDB
상단으로

티스토리툴바