Application Containers
🧠 Introduction
Already familiar with Pluggable Databases (PDBs) inside a Container Database (CDB)?
Well, let’s zoom in on something special-purpose — the Application Container.
Think of it like a department inside a company:
➤ The company is the CDB
➤ The department is the Application Container
➤ And each team in that department is an Application PDB
🧩 What Is an Application Container?
An Application Container is an optional component inside a CDB (Container Database) that holds multiple Application PDBs (Pluggable Databases) used for a specific application.
✅ It allows these Application PDBs to share data and metadata
✅ Just like how all regular PDBs share common info from the CDB root
🧠 Key Components in an Application Container
Component | Description |
---|---|
Application Root | The main controller (like CDB$ROOT) for the app container. Stores shared data, metadata, and common users used by app PDBs. |
Application PDBs | User-created databases for each instance of the application. Plugged into the Application Root. |
Application Seed | Optional PDB used to quickly clone new Application PDBs. Works like PDB$SEED in the main CDB. |
📌 Important: The Application Root can store user-created common objects — unlike the CDB root, which stores only Oracle-supplied metadata.
🏗️ Architecture Summary
CDB
├── CDB$ROOT (Oracle Metadata)
├── PDB$SEED (Template)
├── User PDBs (e.g., HR_PDB, FINANCE_PDB)
└── Application Container: SALES_APP_CONTAINER
├── Application Root (SALES_APP_ROOT)
├── Application Seed (Optional)
└── Application PDBs (e.g., SALES_NORTH, SALES_SOUTH)
📁 Physically: All these containers are backed by data files
🗂️ Logically: Data is managed via tablespaces
🔁 Why Use Application Containers?
✔️ Centralized Metadata & Schema Management
➤ Define common tables, procedures, or users once in the root — shared across all app PDBs
✔️ Faster Deployments
➤ Use an application seed to clone new environments quickly
✔️ Modular Architecture
➤ Great for multi-region, multi-tenant, or multi-client applications
✔️ Easy Upgrades
➤ Upgrade or patch app components once in the application root, and sync across all app PDBs
🛠️ DBA Tip of the Day
If you manage multi-instance apps (e.g., same app for different clients or regions),
using Application Containers will save you time, space, and headache.
Centralize the logic. Isolate the data. Scale effortlessly.