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

Oracle CBD结构和Non-CBD结构区别

Oracle Container Database (CDB) 和 Non-CDB(传统非容器数据库)结构的详细区别,附带结构图和对比表格:


1. CDB(Container Database)结构

CDB是Oracle 12c及以后版本引入的多租户架构的核心组件。CDB是一个大型的容器数据库,可以包含一个或多个Pluggable Database (PDB)。每个PDB都是一个独立的数据库实例,具有自己的数据文件、redo日志和控制文件,但共享CDB的资源(如内存、进程等)。

CDB结构特点:
  • 多租户架构:支持多个PDB在一个CDB中运行。
  • 资源共享:CDB和PDB共享某些资源(如内存、进程、共享池等),提高资源利用率。
  • 统一管理:CDB提供统一的管理界面,简化了对多个PDB的管理。
  • 灵活性:PDB可以动态插拔(Plug and Unplug),便于迁移和管理。
CDB结构图:
CDB 
├── Root Container (CDB$ROOT)
│   └── 系统表空间(SYSTEM, SYSAUX)
├── Seed Container (PDB$SEED)
│   └── PDB模板 
├── PDB 1 
│   ├── 用户表空间 
│   ├── 系统表空间 
│   └── Redo日志 
├── PDB 2 
│   ├── 用户表空间 
│   ├── 系统表空间 
│   └── Redo日志 
└── ...(更多PDB)

2. Non-CDB(传统非容器数据库)结构

Non-CDB是Oracle传统数据库结构,每个数据库实例都是一个独立的数据库,不依赖于CDB。Non-CDB只有一个实例,包含自己的数据文件、redo日志和控制文件,不支持多租户架构。

Non-CDB结构特点:
  • 单实例:每个数据库是一个独立的实例,不共享资源。
  • 独立管理:每个数据库需要单独管理,资源利用率较低。
  • 灵活性较低:不支持PDB的动态插拔和迁移。
Non-CDB结构图:
Non-CDB 
├── 用户表空间 
├── 系统表空间 
├── Redo日志 
└── 控制文件 

3. CDB与Non-CDB对比表格

特性CDB (Container Database)Non-CDB (传统数据库)
架构多租户架构,支持多个PDB在一个CDB中运行。单实例架构,每个数据库独立运行。
资源共享CDB和PDB共享内存、进程等资源,提高资源利用率。每个数据库独立使用资源,资源利用率较低。
管理复杂度提供统一的管理界面,简化对多个PDB的管理。每个数据库需要单独管理,管理复杂度较高。
扩展性支持动态插拔PDB,便于扩展和迁移。不支持PDB插拔,扩展性较低。
版本支持Oracle 12c及以上版本支持CDB架构。Oracle所有版本均支持Non-CDB架构。
性能共享资源可能导致性能瓶颈,但整体资源利用率更高。资源独立使用,性能相对稳定,但资源利用率较低。
应用场景适用于需要多租户管理、资源共享和动态扩展的企业级应用场景。适用于资源独立、管理简单的中小型数据库场景。

4. CDB的优势

  • 资源利用率:CDB和PDB共享资源,减少硬件成本。
  • 管理便捷性:统一管理多个PDB,简化运维。
  • 灵活性:PDB可以动态插拔,便于迁移和扩展。
  • 多租户支持:支持多个PDB同时运行,满足多租户需求。

5. Non-CDB的优势

  • 独立性:每个数据库独立运行,资源不共享,适合对资源隔离要求高的场景。
  • 兼容性:Non-CDB架构适用于所有Oracle版本,兼容性更好。
  • 管理简单:单实例管理,适合中小型企业或简单场景。

6. 总结

  • CDB适用于需要多租户管理、资源共享和动态扩展的企业级场景。
  • Non-CDB适用于资源独立、管理简单的中小型数据库场景,但是它在20c版本被弃用了

http://www.kler.cn/a/573429.html

相关文章:

  • 微软官宣5 月 5 日关闭 Skype,赢者通吃法则依然有效
  • 解锁网络防御新思维:D3FEND 五大策略如何对抗 ATTCK
  • 如何快速的用pdfjs建立一个网页可以在线阅读你的PDF文件
  • 加密算法学习与SpringBoot实践
  • Java 多态:代码中的通用设计模式
  • 第七节:基于Winform框架的串口助手小项目---协议解析《C#编程》
  • 【数据结构初阶】---时间复杂度和空间复杂度了解及几道相关OJ题
  • Ubuntu20.04 在离线机器上安装 NVIDIA Container Toolkit
  • 【我的 PWN 学习手札】House of Emma
  • Python:简单的爬虫程序,从web页面爬取图片与标题并保存MySQL
  • Electron桌面应用开发:创建应用
  • iterm2更新后主题报错
  • 链表操作的高阶技巧:K个一组翻转链表的实现与思考
  • JVM常用概念之新对象实例化
  • Ubuntu录屏--OBS
  • 什么是组态软件
  • 【DOM 型 XSS举例】
  • 分库分表 MyBatis的拦截器(Interceptor)在 SQL 执行前动态修改表名
  • 前端埋点项目从设计到实现详解
  • 小程序分类页面