답변 2
2
안녕하십니까,
Multi tenant , 즉 CDB/PDB 아키텍처를 사용하는 이유를 물어보신거라면,
1. 오라클은 1개의 DB 구조는 RAC가 아닌 이상 1개의 Instance로 구성이 됩니다.
이때 1개의 Instance는 여러개의 Background 프로세스들과 (대용량의) 전용 메모리 SGA를 가지게 됩니다. 오라클 DB 1개가 올라가면 많은 메모리와 자원을 사용하므로 보통은 1개의 물리적인 H/W 서버에 1개의 DB를 올립니다. DB가 10개면 보통은 10개의 H/W 서버를 구축합니다.
그런데 여러개의 DB들을 Consolidation을 해야 하는 요구사항들이 몇년전부터 계속 늘어났습니다. 그런데 이들 DB들을 한개의 H/W 서버에 올리기에는 물리적인 메모리나 기타 자원이 부족하게 되는 경우가 많습니다. 또 10개 DB를 1개의 H/W 서버에 올리면 Background 프로세스도 10배나 많게 생성해야 합니다.
때문에 CDB/PDB가 나오기 전까지는 여러 DB의 스키마들을 통합하는 방식을 사용했는데, 이렇게 하면 마이그레이션에 많은 인력이 투입되어야 할 필요가 발생합니다.그래서 오라클에서 12C 버전 부터는 여러개의 DB들을 PDB로 구성할수 있게 지원을 해줍니다. 즉 1개의 CDB 기반에서 10개의 PDB를 만들어서 기존 10개의 H/W에서 돌아가던 10개의 DB를 편리하게 통합시켜 주는 방식을 제공합니다. CDB/PDB를 사용하면 Background 프로세스도 1개 DB 갯수만큼만 띄우면 되고 SGA도 PDB들끼리 서로 공유가 가능합니다. 그래서 1개의 H/W에서 자원을 절약하면서 여러개의 DB를 구성할 수 있습니다.
그런데 CDB/PDB는 기존 11g 까지의 아키텍처와 살짝 다른부분이 있습니다. Data Dictionary, 파라미터 설정들이 기존과 다른점이 있어서 아직까지 국내에서는 많이 사용되고 있지 않습니다. 때문에 CDB/PDB를 기준으로 말씀 드리면 오히려 혼동될 것 같아서 강의에서는 Non CDB 구조로 DB를 구성합니다.
감사합니다.
1