当前位置: 首页 > news >正文

Oracle多租户架构

📢📢📢📣📣📣
作者:IT邦德
中国DBA联盟(ACDU)成员,15年DBA工作经验
Oracle、PostgreSQL ACE
CSDN博客专家及B站知名UP主,全网粉丝15万+
擅长主流Oracle、MySQL、PG、高斯及Greenplum备份恢复,
安装迁移,性能优化、故障应急处理

文章目录

  • 1.多租户架构
  • 2.CDB 根容器
  • 3.PDB
  • 4.容器逻辑结构

1.多租户架构

容器是多租户容器数据库(CDB)中模式、对象和相关结构的集合,在逻辑上应用程
序将其显示为单独的数据库。在 CDB 中,每个容器都有一个唯一的 ID 和名称。 根和每
个可插拔数据库(pdb)都被视为一个容器。pdb 隔离数据和操作,因此从用户或应用程
序的角度来看,每个 pdb 看起来都像是传统的非 cdb。

2.CDB 根容器

根容器是所有 pdb 所属的模式、模式对象和非模式对象的集合。每个 cdb 都有且只
有一个根容器,根容器被命名 CDB$ROOT。用于存储管理 pdb 所需的系统元数据。 所有
pdb 都属于根目录。 根目录不存储用户数据。因此,不能将用户数据添加到根目录或修改
根目录中系统提供的架构。但是,可以为数据库管理创建公共用户和角色。

3.PDB

pdb 是用户创建的一组模式、对象和相关结构,在逻辑上对应用程序显示为单独的数
据库。每个 pdb 都归 sys 所有,sys 是 cdb 中的一个公共用户。

1)存储特定应用程序的数据
例如,销售应用程序可以有自己的专用 PDB,人力资源应用程序可以有自己的专用PDB。
2)将数据移动到其他 CDB
数据库是“可插入的”,可以将其打包为一个独立的单元,然后将其移动到另一个 cdb中。
3)在 PDB 中隔离授权
具有适当权限的本地或公共用户可以授予单个 pdb 中的 public。

在 CDB 中,所有数据库对象都位于架构中,而架构又位于容器中。因为 pdb 在用 户
看来是非 cdb,所以模式必须在容器中唯一命名,而不能跨容器命名。例如,rep 模式既可
以存在于 SalePDB 中,也可以存在于 HrPDB 中。这两个模式是独立的。
连接到一个 pdb 的用户必须使用 database links 来访问另一个 pdb 中的对象。 这种
行为直接类似于非 cdb 中的用户访问不同非 cdb 中的对象。

连接到一个 pdb 的用户必须使用 database links 来访问另一个 pdb 中的对象。 这种行为直接类似于非 cdb 中的用户访问不同非 cdb 中的对象。


在物理层,CDB 是一组文件,控制文件、联机重做日志文件和数据文件。
在物理层,每个 PDB 都有自己的一组数据文件,用于存储 PDB 的数据。

多租户体系结构的好处:
1)降低成本(10 台服务器变成 1 台,共享进程,共享系统资源)
2)更容易和更快速的数据和代码的移动(可拔插数据库,像 U 盘一样)
3)更轻松地管理和监控物理数据库(至少不用连接 N 多服务器来观察)
4)分离数据和代码
5)安全分离管理权限(各个 PDB 之间的权限依旧独立)
6)轻松性能调优

多租户体系结构对可管理性的好处
•更容易升级数据和代码
•更容易在服务器之间迁移
•防止 PDB 中的数据损坏
•能够在一个地方安装、管理和升级特定于应用程序的数据和元数据

4.容器逻辑结构


cdb 的结构与非 cdb 相同,只是每个 pdb 和应用程序根目录都有自己的表空间集,包
括自己的 SYSTEM, SYSAUX, and undo 表空间。
1)SYSTEM and SYSAUX tablespaces for every container
2)每个 pdb 都有自己的一组非系统表空间。这些表空间包含 pdb 中用户定义的模式 和
对象的数据。 在 pdb 中,管理永久表空间和临时表空间的方式与在非 cdb 中管理它们的
方式相同。
3)CDB 根存在一个默认临时表空间,每个 PDB 都有一个临时表空间。

http://www.jsqmd.com/news/598901/

相关文章:

  • SpringBoot4.X: 彻底消灭 NullPointerException
  • 9篇8章2节:MIMIC 数据库的 CITI 注册与课程选择(2026年版)
  • 实战指南:基于快马平台构建带第三方登录的tk网站登录页
  • 前端 SSE(Server-Sent Events)实现详解:从原理到前端 AI 对话应用
  • WaveTools重构鸣潮游戏体验:突破性能瓶颈的开源解决方案
  • AI率80%和40%降到20%,难度差了多少?
  • 【React】setState 触发渲染的流程
  • 基于STM32的‘水位检测自动控制系统‘:支持超声波模块、DS18B20传感器,包含原理图、P...
  • 基于液压控制的冲床自动送料机的设计【说明书+CAD+外文翻译】
  • Math.js 使用教程
  • 五相电机双闭环矢量控制模型:原理说明、仿真波形及完整版Simulink模型
  • Windows下5种端口连通性测试方法实测对比(附详细命令)
  • Ostrakon-VL-8B多模态运维监控实战:智能日志分析与故障预警
  • e1547:重新定义e621浏览体验的现代化客户端解决方案
  • Golang笔记1-变量与类型
  • 3步优化鸣潮游戏体验:面向全层级玩家的WaveTools工具箱使用指南
  • VI、 UI 和 UX 设计区别,详细介绍
  • # 发散创新:基于Python与OpenCV的手势识别系统实战详解在人工智能快速发
  • 终极指南:使用payload-dumper-go快速提取Android OTA更新包
  • 【VBA】【EXCEL】分类汇总
  • 篡改猴Tampermonkey失效解决方案
  • 单目相机实战:用OpenCV的solvePnP实现物体位姿估计(附Python代码)
  • C++ STL 核心:string 从入门到精通(面试+源码+OJ实战)
  • 100个服装款的PPT商品详情页,我用这三步1分钟搞定
  • 常见网络连接问题分类
  • 基于非对称纳什谈判理论的微网电能共享运行优化策略:合作博弈与P2P交易完美复现的完美电网技术文献实践
  • 2026年二手化工设备二手制药设备厂家最新推荐:二手蒸发器回收、二手离心机回收、二手干燥机回收、二手混合机回收、二手反应釜回收厂家选择指南 - 海棠依旧大
  • 游戏开发中的“场”魔法:用梯度、散度模拟水流、烟雾与热量扩散
  • ParaView实战:5分钟搞定热流图单元格体积计算(附Python脚本)
  • 4月3日