* 멀티테넌트 아키텍처에 대한 정의
[하나의 오라클 CDB(Container database) 내부에 다수의 PDB(Pluggable database)를 생성, 관리하는 멀티테넌트 컨테이너(Mutitenant container) 아키텍처] |
* 멀티테넌트 아키텍처에서 CDB는 다음 3개의 컨테이너(Container)로 구성된다.
-> Root 컨테이너 : CDB$ROOT라고 불리며 오라클 제공 메타 데이터(Oracle supplied metadata)와 공통의 사용자(Common users) 정보를 저장하고 있다.
-> Seed 컨테이너 : PDB$SEED라고 불리며 새로운 PDB를 생성할 때 사용되는 일종의 Template이다. PDB를 생성할 때 이미 내부적으로 생성해놓은 기본 데이터베이스 이미지(Template)를 기반으로 만들게 되는데 이를 Seed 컨테이너라고 부른다.
-> PDB 컨테이너 : 기존 버전에서 일반적으로 생성, 관리했던 데이터베이스. 애플리케이션 측면에서 볼 때 접속하게 되는 데이터베이스가 바로 PDB라고 이해하면 된다.
* PDB는 처음부터 PDB$SEED로부터 생성할 수 있고, Non-CDB를 PDB형태도 전환도 가능하며, 기존 PDB로부터 복제함으로써 다른 PDB를 생성할 수 있다. 물론 임의의 CDB에서 PDB를 뽑아내어 다른 CDB에 끼워주는 방법도 가능하다. PDB내에서 데이터 딕셔너리 뷰나 성능 뷰를 조회하면 해당 PDB에 관한 정보만 조회가 가능하다. 하지만 CDB$ROOT에 접속하여 cdb_로 시작하는 데이터 딕셔너리 뷰를 조회하게 되면 CDB와 PDB에 대한 모든 메타 데이터 조회가 가능하다.
* 하나의 CDB 내부에 다수의 PDB를 가질 수 있고 PDB는 Full backward compatibility 속성을 가진다. 즉, 애플리케이션 입장에서 기존 DB에서 잘 수행되었다면 DB가 PDB로 전환되었다고 문제가 되지 않고, 반대의 경우 마찬가지로 PDB의 형식으로 사용하던 DB를 Non-CDB로 빼내어 구성해도 애플리케이션 입장에서는 문제가 없다는 의미가 된다.
* CDB와 PDB에 중복되어 저장될 수도 있는 공통 오브젝트들에 대한 메타 데이터 정보는 CDB에만 저장되고 PDB 내부에 저장되어 있는 오브젝트들에 대한 메타 데이터 정보는 PDB 내부의 데이터 딕셔너리에 분리 저장함으로서 각각의 PDB들이 플러그인 혹은 언플러그 작업에 있어 복잡성을 최소화시켜준다. 이러한 변화는 데이터 딕셔너리 뷰의 구성에도 큰 영향을 준다.
-> CDB_xxx : 모든 컨테이너에 존재하는 모든 오브젝트 ( CDB$ROOT와 모든 PDB 포함 )
-> DBA_xxx : 현재 컨테이너에 존재하는 모든 오브젝트 ( CDB$ROOT 혹은 각각의 PDB )
-> ALL_xxx : 현재 컨테이너의 현재 사용자에 의해 접근 가능한 오브젝트 ( CDB$ROOT 혹은 각각의 PDB )
-> USER_xxx : 현재 컨테이너의 현재 사용자에 의해 생성된 가능한 오브젝트 ( CDB$ROOT 혹은 각각의 PDB )
'Operating System > ORACLE' 카테고리의 다른 글
[ORACLE] TABLE 생성 (0) | 2022.04.01 |
---|---|
[ORACLE] TABLESPACE,USER 생성 및 삭제 (0) | 2022.03.31 |
[ORACLE] 로우 아이디(ROWID) (0) | 2022.03.10 |
[ORACLE] 인덱스(INDEX) (0) | 2022.02.25 |
[ORACLE] Currval과 Nextval (0) | 2022.02.24 |