본문 바로가기
Database

오라클 컨테이너 데이터베이스(CDB)와 플러그인 데이터베이스(PDB)의 차이

by 굿센스굿 2024. 12. 5.
반응형

 

Oracle Database는 멀티테넌트 아키텍처를 통해 데이터베이스 관리의 효율성을 크게 향상시켰습니다. 이 구조는 하나의 컨테이너 데이터베이스(CDB) 아래에 여러 **플러그인 데이터베이스(PDB)**를 호스팅할 수 있는 환경을 제공합니다. 이번 글에서는 CDB와 PDB의 개념, 차이점, 그리고 각각의 실무적 활용 방안을 살펴보겠습니다.


1. 컨테이너 데이터베이스(CDB)란?

컨테이너 데이터베이스(CDB)는 멀티테넌트 아키텍처의 상위 데이터베이스로, 공유 인프라 역할을 합니다.

  • 공유 리소스: CDB는 메모리와 프로세스 등의 물리적 리소스를 공유합니다.
  • 구성요소: 하나의 루트 컨테이너(Container Root, CDB Root)와 여러 PDB로 구성됩니다.
  • 관리 역할: 데이터베이스의 전반적인 설정과 관리 기능을 제공합니다.

주요 특징

  • 글로벌 데이터 관리: CDB 수준에서 데이터베이스 설정과 보안 정책을 통합적으로 관리합니다.
  • 단일 관리: CDB 내 PDB를 단일 단위로 관리할 수 있습니다.
  • 공유 아키텍처: 메모리 및 프로세스를 공유해 자원을 절약합니다.

2. 플러그인 데이터베이스(PDB)란?

플러그인 데이터베이스(PDB)는 CDB에 종속된 독립적인 데이터베이스입니다.

  • 독립성: 각각의 PDB는 고유한 데이터와 스키마를 보유하며, 애플리케이션 수준에서 독립적으로 운영됩니다.
  • 유연성: PDB는 손쉽게 다른 CDB로 이동하거나 복제될 수 있습니다.
  • 보안 격리: 서로 다른 PDB는 데이터를 공유하지 않고 격리되어 있습니다.

주요 특징

  • 독립적 구성: 스키마, 테이블스페이스, 사용자 계정을 개별적으로 관리합니다.
  • 플러그 앤드 플레이: PDB를 다른 CDB에 쉽게 플러그인 또는 언플러그할 수 있습니다.
  • 멀티테넌트 환경: 여러 PDB를 하나의 CDB에서 관리하며, 데이터베이스 통합이 용이합니다.

3. CDB와 PDB의 주요 차이점

구분 컨테이너 데이터베이스(CDB) 플러그인 데이터베이스(PDB)

역할 상위 데이터베이스로 PDB를 관리하고 리소스를 제공 독립적인 데이터베이스로 사용자 데이터를 저장
구성 요소 루트 컨테이너(CDB Root) 및 여러 PDB 테이블스페이스, 사용자, 스키마 등을 포함
관리 범위 공통 설정 및 리소스 관리 개별 PDB 수준에서 데이터와 설정 관리
보안 격리 전체 데이터베이스 수준의 보안 설정 관리 각 PDB마다 별도의 보안 정책 설정 가능
이동성 CDB 자체는 이동 불가 다른 CDB로 쉽게 이동 가능

4. 실무 예제

예제 1: CDB에서 PDB 생성

목표: 새로운 PDB를 생성하여 특정 애플리케이션 환경에 맞는 데이터베이스 제공.

  1. PDB를 생성합니다.
    CREATE PLUGGABLE DATABASE pdb_sales ADMIN USER pdb_admin IDENTIFIED BY password
    FILE_NAME_CONVERT=('/u01/app/oracle/oradata/cdb1/pdbseed/', 
                       '/u01/app/oracle/oradata/cdb1/pdb_sales/');
    
  2. 생성된 PDB를 열어 사용 가능하게 설정합니다.
    ALTER PLUGGABLE DATABASE pdb_sales OPEN;
    

예제 2: PDB 이동

목표: 기존 PDB를 다른 CDB로 이동.

  1. PDB를 언플러그합니다.
    ALTER PLUGGABLE DATABASE pdb_hr CLOSE IMMEDIATE;
    ALTER PLUGGABLE DATABASE pdb_hr UNPLUG INTO '/u01/app/oracle/oradata/cdb1/pdb_hr.xml';
    
  2. 다른 CDB로 플러그인합니다.
    CREATE PLUGGABLE DATABASE pdb_hr USING '/u01/app/oracle/oradata/cdb1/pdb_hr.xml'
    FILE_NAME_CONVERT=('/u01/app/oracle/oradata/cdb1/', 
                       '/u01/app/oracle/oradata/cdb2/');
    ALTER PLUGGABLE DATABASE pdb_hr OPEN;
    

예제 3: PDB 백업 및 복구

목표: 특정 PDB의 백업 및 복구를 수행하여 데이터 손실 방지.

  1. RMAN으로 PDB 백업 수행.
    RMAN> BACKUP PLUGGABLE DATABASE pdb_finance;
    
  2. PDB 복구 수행.
    RMAN> RESTORE PLUGGABLE DATABASE pdb_finance;
    RMAN> RECOVER PLUGGABLE DATABASE pdb_finance;
    

5. CDB와 PDB 사용 시 고려사항

  1. 리소스 관리
    PDB가 늘어나면 CDB의 리소스가 부족해질 수 있으므로, **리소스 관리 정책(Resource Manager)**를 설정해야 합니다.
  2. 보안 강화
    PDB 간 격리에도 불구하고 CDB 수준에서 보안 위협이 발생할 가능성이 있으므로, 세심한 보안 설정이 필요합니다.
  3. 업그레이드 및 패치
    CDB의 업그레이드는 전체 PDB에 영향을 미치므로 사전에 충분한 테스트가 필수입니다.
  4. 라이선스 고려
    멀티테넌트 아키텍처는 Oracle의 특정 라이선스가 요구될 수 있으니, 이를 확인해야 합니다.

결론

컨테이너 데이터베이스(CDB)와 플러그인 데이터베이스(PDB)는 Oracle Database의 멀티테넌트 아키텍처를 기반으로 하여 데이터베이스 관리의 유연성과 효율성을 제공합니다.
CDB는 데이터베이스 리소스를 통합 관리하는 반면, PDB는 개별 애플리케이션이나 부서의 요구에 맞게 독립적으로 운영됩니다.
실무에서 CDB와 PDB를 올바르게 활용하면 데이터베이스 관리 비용을 절감하고 운영 효율성을 높일 수 있습니다.

궁금한 점이 있거나 추가적인 도움이 필요하다면 댓글로 문의해주세요! 😊

반응형