با معرفی اوراکل 12c معماری Multitenant Architecture معرفی شده که تغییرات زیادی را نسبت به نسخه های پیشین همراه داشته است. معماری Multitenant Architecture شامل Container Database یا CDB و Pluggable Database یا PDB است. یک CDB شامل صفر، یک یا چند PDB سفارشی ایجاد شده است. یک PDB مجموعه ای قابل حمل از اسکیما ها، اشیا اسکیما و اشیا غیر اسکیما می باشد.  در نسخه های پیشین اوراکل معماری به صورت Non-CDB بود.CDB شامل تمامی مواردی مانند Control Files ها، Datafile ها، Redo File ها و غیره است.PDB ها هیچ نیازی به دانستن درباره Control File ها، Datafile ها و غیره ندارند و تنها شامل اطلاعات خودش است.

درباره Container در CDB
یک Container در CDB می تواند شامل یک PDB و یا یک root container باشد که root نیز شناخته می شود. root مجموعه ای اسکیما ها، schema object ها و nonschema object های متعلق به تمامی PDB ها است. هر CDB دو Container زیر را دارد :
root : شامل Oracle-supplied metadata و کاربران است. یک نمونه از متا دیتا ها Oracle-supplied PL/SQL packages و کاربر نیز کاربری است که در هر container شناخته می شود که Common User یا کاربر مشترک گفته می شود. CDB$ROOT نام root container است.
seed PDB : یک system-supplied template که CDB از آن به عنوان قالبی برای ایجاد PDB های جدید استفاده می کند و PDB$SEED نامگذاری شده است و نمی توانید اشیایی به آن اضافه یا اشیای آنرا تغییر دهید.
PDB های ایجاد شده توسط کاربران : CDB می تواند شامل صفر، یک یا چند PDB سفارشی و ایجاد شده توسط کاربران باشد. یک PDB می تواند شامل تمامی اشیا و داده های مربوط به یک ویژگی یا کاربرد خاص باشد. به طور مثال می تواند برای یک Application به کار رفته برای منابع انسانی یا برای فروش باشد. به هر حال ایجاد PDB بر اساس نیاز سازمانی و تجاری شما است.
شکل بالا ساختار گفته شده از سه Container را در CDB که شامل root, seed و دو PDB برای دو Application است را نشان می دهد. هر PDB برای Application خودش است و شامل مدیر خودش نیز است. یک Common User (مانند کاربر SYS) می تواند root و همه PDB های را مدیریت کند. در سطح فیزیکی CDB دارای یک Database Instance و فایل های پایگاه داده است.

 

در اوراکل 12c باید پایگاه داده را یا به عنوان CDB یا non-CDB ایجاد کنید. می توانید یک non-CDB را به عنوان PDB به CDB پلاگ (Plug) کنید. برای انتقال PDB به non-CDB باید از Data Pump استفاده کنید. شکل زیر ساختار non-CDB (پیش از اوراکل 12c) را نشان می دهد. دو non-CDB مجزا به نام های hr و sales وجود دارند که هر کدام حافظه و مجموعه فایل های خودشان را دارند که بر روی کامپیوتر خودشان نگهداری می شوند. هر کدام Application مرتبط به خودش رادارد.

 

مطابق با شکل زیر دو PDB به نام های hr و sales بر خلاف non-CDB ها، بر روی یک کامپیوتر و تحت CDB به نام MYCDB کنترل می شوند.

به طور فیزیکی MYCDB یک پایگاه داده است که یک Instance و فایل های خودش را مانند یک non-CDB دارد. MYCDB دارای دو PFB به نام های hr و sales که هر کدام Application های مربوط به خودشان را دارند. برای مدیریت خود CDB یا PDB های آن، یک مدیر CDB یا CDB administrator می تواند به root container که مجموعه از اسکیما ها، Schema Object ها و non object ها متصل شود. برای اطلاع بیشتر می توانید مستندات سایت اوراکل “Oracle Database Concepts, 12c Release 1” و مطلب مرتبط با معماری multitenant را بخوانید.

 

[widgetkit id=41]