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.