[oracle] 12c 이상 버전에서 Multi-Tenancy 사용 시 주의사항

Symptoms
  • 오라클 멀티테넌시(Multi-Tenancy) 사용 환경에서 MCCS에 이중화 등록 시 아래 Solution 에 기재한 스크립트 참고 필요.
  • Multi-Tenancy : 각각의 데이터베이스를 하나의 컨테이너 데이터베이스에 동시에 통합/유지하여 운영하는 형태.
  • CDB ( Container Database) : 여러개의 DB를 담을 수 있는 컨테이너
  • PDB (Pluggable Database) : local user 입장에서 독립적인 DB로 보이는 CDB에 자유롭게 등록/해제 가능한(Pluggable) DB
    • PDB끼리는 서로 독립적이며 데이터 공유는 할 수 없다
    • PDB는 CDB 내에서 고유하고 독립된 데이터베이스 환경을 가지며 1개의 CDB는 복수 개의 PDB를 가질 수 있다.
Environment
  • Oracle 21c 이상 버전
Related Versions
  • MCCS 버전 상관 없음
Cause
  • 오라클 12c이상 부터 Multi-Tenancy지원
    • CDB / PDB 사용 여부 확인
Solution
  • 기동 스크립트

# 1개의 CDB에 2개의 PDB 운영 시

*ERS : CDB 명

*ERSDB, IVRDB : PDB명

========================================

#!/bin/bash

su – ers << EOF

export ORACLE_SID=ERS

sqlplus / as sysdba

startup; # CDB(ERS) 기동

alter pluggable database ERSDB open READ WRITE; # PDB(ERSDB) 기동

alter pluggable database IVRDB open READ WRITE; # PDB(IVRDB) 기동

exit

EOF

exit 0

========================================

  • 종료 스크립트

========================================

#!/bin/bash

su – ers << EOF

export ORACLE_SID=ERS

sqlplus / as sysdba

alter session set container=”ERSDB”; # PDB(ERSDB) 선택

shutdown immediate; # PDB 종료

conn / as sysdba

alter session set container=”IVRDB”; # PDB(IVRDB) 선택

shutdown immediate # PDB(IVRDB) 종료

conn / as sysdba # CDB 접속

shutdown immediate; # CDB 종료

exit

EOF

exit 0

========================================

# .bash_profile에 등록된 $ORACLE_SID 는 CDB 명을 의미함.

# show con_name ; #PDB name 확인

# show pdbs; # open mode가 read/write면 status : open 상태와 같음.

Workaround
  • N/A