Oracle PDB 概念与架构

Oracle PDB 概念与架构

日期 :2026-03-18
来源https://docs.oracle.com/en/database/oracle/oracle-database/19/multi/introduction-to-the-multitenant-architecture.html
标签:#Oracle #PDB #多租户 #CDB


核心概念

Oracle 12c 引入多租户架构,允许一个 Oracle 数据库作为容器数据库(CDB)运行,内部承载多个可插拔数据库(PDB)

容器类型

容器 说明
CDB RootCDB$ROOT 存储 Oracle 元数据和公共用户,每个 CDB 只有一个
PDB$SEED 系统提供的种子模板,用于创建新 PDB,不可修改
PDB 用户创建的可插拔数据库,对应用来说像一个完整独立数据库
应用容器 包含应用根和一组相关应用 PDB,用于多租户应用场景
系统容器 逻辑容器,包含 Root 和所有 PDB

用户类型

  • 公共用户(Common User):在 CDB 所有容器中均存在,如 SYS
  • 本地用户(Local User):仅存在于某个 PDB,权限不跨容器

架构示意

复制代码
CDB(容器数据库)
├── CDB$ROOT(根容器)
├── PDB$SEED(种子,只读)
├── PDB1(用户数据库 A)
├── PDB2(用户数据库 B)
└── 应用容器
    ├── 应用根
    ├── 应用种子
    └── 应用 PDB

核心优势

  • 资源共享:多个 PDB 共享同一套内存和后台进程,降低成本
  • 快速移植:PDB 可整体插入/拔出,迁移极为便捷
  • 隔离性:每个 PDB 有自己的数据字典和表空间,互不影响
  • 独立恢复:可对单个 PDB 执行 Flashback,不影响其他 PDB
  • 字符集灵活:CDB 使用 AL32UTF8 时,各 PDB 可用不同字符集

重要限制

⚠️ 数据库一旦创建就固定为 CDB 或非 CDB,不可转换

sql 复制代码
-- 创建 CDB(必须在建库时声明)
CREATE DATABASE cdb1
  ENABLE PLUGGABLE DATABASE;

-- 验证是否为 CDB
SELECT NAME, CDB FROM V$DATABASE;

常用查询

sql 复制代码
-- 查看所有 PDB
SHOW PDBS;
SELECT NAME, OPEN_MODE FROM V$PDBS;

-- 查看当前所在容器
SHOW CON_NAME;
SHOW CON_ID;

-- 切换到指定 PDB
ALTER SESSION SET CONTAINER = pdb_name;

相关推荐
倔强的石头_20 小时前
《Kingbase护城河》——数据库存储空间全景探测与精细化瘦身实战
数据库
冬奇Lab1 天前
每日一个开源项目(第134篇):Zvec - 阿里开源的嵌入式向量数据库,向量搜索界的 SQLite
数据库·人工智能·llm
ClouGence2 天前
Oracle CDC 架构优化:从主库直连到 DataGuard 备库同步
数据库·后端·oracle
无响应de神2 天前
三、用户与权限管理
数据库·mysql
大树883 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠3 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质3 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
Inhand陈工3 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
酣大智3 天前
ARP代理--工作原理
运维·网络·arp·arp代理
麦聪聊数据3 天前
数据服务化时代:企业数据能力输出的核心路径
数据库