클라우드 데이터베이스 Oracle 12c 가이드 (2016년)
Pluggable 데이터베이스(PDB) 0 0 18,820

by 구루비스터디 Pluggable 데이터베이스 PDB 오라클 멀티테넌트 [2023.09.05]


Pluggable 데이터베이스(PDB)

  • 개요: PDB는 스키마 오브젝트의 논리적인 집합이며, 애플리케이션과 local유저 관점에서 PDB는 독립적인 데이터베이스처럼 보인다.
1PDB 이해
2PDB 퍼포먼스
3PDB 명명
4PDB local 유저
5PDB 엑세스


PDB 이해

  • PDB는 본질적으로 관련된 메타데이터(유저, 테이블, 통계정보 등)와 실제 물리적인 데이터를 가진 별도의 데이터베이스이다.
  • 하나의 그리고 유일한 데이터베이스 개체를 구성하는 기본요소가 포함되어 있기 때문에 컨테이너라고도 부른다.
  • PDB는 PDB에 포함된 데이터를 저장하는 물리적인 데이터 파일이 포함, 이 데이터 파일은 PDB에 관련된 메타데이터를 포함하는 데이터 딕셔너리의 로컬 복사본을 포함한다.
  • PDB의 데이터는 PDB 자체에 독립적이고 다른 PDB와는 공유하지 않는다.
  • PDB는 오라클 버전이 12c 이상이고, CDB와 동일한 버전이어야 한다. 즉, CDB는 다른 버전의 PDB를 가질 수 없다.
  • CDB가 업그레이드될 때, CDB 내의 모든 PDB들도 동일한 데이터베이스 버전으로 업그레이드 된다.
  • 모든 PDB는 부모 CDB의 SYS 유저가 소유한다. 한 CDB는 최대 252개의 PDB를 가질 수 있다.
  • PDB는 DBA 권한이 있는 계정으로 CDB에 연결되고, 각 PDB는 다른 PDB와 독립적이고 분리되어 있다.
  • 관리자는 PDB를 CDB로부터 분리하여 다른 CDB로 옮길 수 있으며, CDB내에서 복제할 수도 있다.


PDB의 용도

1PDB는 독립적이고 분리된 저장소로 특정 애플리케이션의 데이터를 저장할 때 사용할 수 있다.
2local 유저의 권한은 PDB 내로 한정되기 때문에 관리 권한을 제어할 수 있다.
3PDB는 다른 CDB로 쉽게 이동이 가능하다.
4PDB를 쉽게 복사해서 데이터베이스를 구축할 수 있기 때문에 프로비저닝 작업 시간을 줄일 수 있다.
  • 각 PDB는 자신의 SYSTEM, SYSAUX, USERS 테이블 스페이스를 가지고 추가적으로 테이블 스페이스를 만들 수 있다.
  • PDB는 CDB에서 언플러그, 또는 복사하여 다른 CDB로 이동할 수 있다.


PDB 퍼포먼스

  • CDB 내 PDB는 CPU와 메모리 같은 시스템 리소스를 공유한다.
  • PDB를 추가할 때마다 리소스 사용량은 선형적으로 증가 않는다.
PDB 증가에 따른 메모리 사용률
  • PDB를 사용하면 개별적인 인스턴스를 사용하는 것보다 시스템 자원을 더 효율적으로 사용할 수 있다.

톰 카이트의 한 마디

멀티테넌트 아키텍처의 주된 이점 중에 하나는 단일 호스트상에 복수 개의 데이터베이스를 운영 할 때 리소스에 대한 소비를 줄일 수 있다는 사실이다. 만약 하나의 오라클 인스턴스가 대략적으로 25개의 백그라운드 프로세스가 떠 있다면 10개의 데이터베이스를 단일 호스트에서 구동한다면 250개의 백그라운드 프로세스가 필요하다는 의미다. 멀티테넌트 아키텍처를 사용하는 것은 동일한 10개의 데이터베이스에 단지 25개의 PGA를 가진 25개의 프로세스만이 사용된다는 것이다. OS나 감소된 인스턴스의 메모리 공간뿐만 아니라 관리되는 프로세스 수도 감소함으로써 리소스 절약 효과는 매우 클 수 있다.


PDB 명명

  • 각각의 PDB는 CDB 내에서 유일한 이름을 가진다.
  • PDB의 local 유저는 서비스명을 통해서만 개별적인 PDB로 접속이 가능하기 때문에 PDB의 명명 규칙은 서비스명 명명 규칙과 같다.
1첫 번째 오는 문자는 반드시 알파벳이어야 한다.
2그 다음 문자는 알파벳 또는 밑줄(_)이 올 수 있다.
3PDB명은 대소문자를 구분하지 않는다.


PDB local 유저

  • local 유저의 스키마와 스키마 오브젝트의 범위는 할당된 PDB에 한정된다.
  • CDB 내에서 동일한 local 유저, 스키마명, 오브젝트명을 PDB마다 만들 수 있다. 각각은 분리된 별개의 사용자 네임 스페이스에 생성된다.
  • 각 PDB는 CDB로부터 분리되어 있고 local 유저는 각각에 생성된 PDB에 할당된다.
PDB 액세스

SQL> alter session set container=PDB1;

Session altered.

SQL> create user test identified by test;

User created.

SQL> grant create session to test;

Grant succeeded.
$ sqlplus test/test;

SQL*Plus: Release 12.1.0.2.0 Production on Fri Nov 25 16:30:13 2016

Copyright (c) 1982, 2014, Oracle.  All rights reserved.

ERROR:
ORA-01017: invalid username/password; logon denied
$ sqlplus test/test@192.168.56.101:1521\/PDB1

SQL*Plus: Release 12.1.0.2.0 Production on Fri Nov 25 16:32:16 2016

Copyright (c) 1982, 2014, Oracle.  All rights reserved.


Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, Oracle Label Security, OLAP, Advanced Analytics
and Real Application Testing options

SQL>
$ sqlplus test/test@pdb1

SQL*Plus: Release 12.1.0.2.0 Production on Fri Nov 25 16:33:33 2016

Copyright (c) 1982, 2014, Oracle.  All rights reserved.

Last Successful login time: Fri Nov 25 2016 16:32:16 +00:00

Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, Oracle Label Security, OLAP, Advanced Analytics
and Real Application Testing options

SQL>

$ sqlplus sys/oracle@pdb1 as sysdba

SQL*Plus: Release 12.1.0.2.0 Production on Fri Nov 25 16:34:46 2016

Copyright (c) 1982, 2014, Oracle.  All rights reserved.


Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, Oracle Label Security, OLAP, Advanced Analytics
and Real Application Testing options

SQL>
$ sqlplus sys/oracle@192.168.56.101:1521\/PDB1 as sysdba

SQL*Plus: Release 12.1.0.2.0 Production on Fri Nov 25 16:36:06 2016

Copyright (c) 1982, 2014, Oracle.  All rights reserved.


Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, Oracle Label Security, OLAP, Advanced Analytics
and Real Application Testing options

SQL>


"구루비 데이터베이스 스터디모임" 에서 2016년에 "클라우드 데이터베이스 Oracle 12c 가이드" 도서를 스터디하면서 정리한 내용 입니다.

- 강좌 URL : http://www.gurubee.net/lecture/4284

- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^

- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입