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

Oracle 多租户架构简介

目录

  • 零. 简介
  • 一. CDB(Container Database,容器数据库)
  • 二. PDB(Pluggable Database,可插拔数据库)
  • 三. CDB 与 PDB 的比较
  • 四. 用户的种类
  • 五. XE 与 XEPDB1


零. 简介

⏹Oracle 多租户架构(Multitenant Architecture)是 Oracle 数据库的一种架构,旨在提供对多个数据库实例的高效管理、资源共享和隔离。它在 Oracle 12c 引入,并成为 Oracle 数据库的重要特性之一。允许在一个数据库实例中运行多个逻辑数据库。

多租户架构的核心概念是:

  • 容器数据库(CDB)-> Container Database
  • 可插拔数据库(PDB)-> Pluggable Database

应用场景

  • 云数据库服务提供商:云服务提供商可以在同一个 CDB 中创建多个 PDB,为不同的客户提供独立的数据库环境,每个 PDB 作为一个租户的数据库。
  • 大型企业:一个大型企业可能有多个部门或应用,每个部门或应用可以在不同的 PDB 中运行,实现隔离和独立管理。
  • 开发和测试环境:开发和测试人员可以通过克隆现有的 PDB 快速创建新的测试环境,而不需要创建一个全新的数据库实例。

一. CDB(Container Database,容器数据库)

CDB 是一个包含多个 PDB 的容器,是 Oracle 数据库的基础架构。它负责共享资源(如内存、进程)并管理 PDB 的整体运行。

⏹根容器(Root ContainerCDB$ROOT):

  • 存放 CDB 的元数据和公共组件(如数据字典、公共用户)。
  • PDB 必须依赖 CDB$ROOT 提供基础服务。

⏹种子数据库(Seed Database,PDB$SEED):

  • 一个只读的模板数据库,用于快速创建新的 PDB
  • 不能被修改,只能被复制。

⏹优点:

  • 所有 PDB 共享 CDB 的内存和后台进程(如 SGA、PGA、日志进程等)。
  • 管理员可以通过 CDB 统一管理所有 PDB,例如备份、补丁和升级。
  • 提高硬件利用率,减少管理成本。

二. PDB(Pluggable Database,可插拔数据库)

PDB 是一个独立的数据库,可以插入到 CDB 中运行。每个 PDB 都是一个逻辑数据库,拥有自己的用户、模式和数据。

⏹特点

  • 独立性:
    • 每个 PDB 的用户、表空间、数据文件、数据字典是独立的。
    • 可以独立配置访问权限和安全策略。
  • 便携性:
    • 可以在不同的 CDB 之间迁移(通过插入/拔出操作)。
  • 快速部署:
    • 基于 PDB$SEED 模板创建,速度快且一致性强。
  • 支持多租户架构:
    • 一个 CDB 可以容纳多个 PDB,每个 PDB 可为不同的应用或租户服务。

三. CDB 与 PDB 的比较

+--------------------------+
|       CDB$ROOT           |   <-- 根容器,包含共享的系统资源
+--------------------------+
         |           |
   +-----+-----+     +------+
   |  PDB1     |     | PDB2 |   <-- 可插拔数据库,每个 PDB 都是独立的逻辑数据库
   +-----------+     +------+
         |
   +-----------+
   | PDB3      |   <-- 更多的 PDB
   +-----------+
CDB (容器数据库)
│
├── CDB$ROOT (根容器)
├── PDB$SEED (种子数据库)
├── PDB1 (可插拔数据库1)
├── PDB2 (可插拔数据库2)
└── PDB3 (可插拔数据库3)
特性CDBPDB
定义容器数据库,包含多个 PDB可插拔数据库,是 CDB 的一部分
作用提供资源和基础架构逻辑数据库,存放具体业务数据
资源共享所有 PDB 共享资源独立使用 CDB 提供的资源
数据字典维护全局数据字典维护本地数据字典
创建方法手动安装或从现有数据库转换从种子数据库、现有 PDB 或 XML 创建
迁移能力不能被迁移可以在不同 CDB 之间迁移
文件存储存放元数据和所有 PDB 的文件拥有独立的数据文件和表空间
升级补丁统一应用于整个 CDB随 CDB 升级

四. 用户的种类

⏹在 Oracle 多租户架构中(从 Oracle 12c 开始),用户分为

  • 普通用户(Common User
    • 用户的名称必须以 C## 开头,在CDB中创建
    • 适用于管理员用户,用户管理CDB下的多个PDB
  • 本地用户(Local User
    • 用户的名称无需以 C## 开头,在PDB中创建
    • 更适合应用开发和租户管理
    • 我们平时开发时用的多是本地用户

五. XE 与 XEPDB1

⏹我们安装的oracle数据库是Oracle Database 21c Express Edition版本,执行lsnrctl status后,显示 Oracle Listener 的当前状态。

在这里插入图片描述
在这里插入图片描述

XE服务

  • XEOracle Express Edition 的默认服务名,通常用于连接到整个 CDB 的根容器(CDB$ROOT)。
  • 通过 XE 服务连接时,实际上是在与容器数据库的根容器交互。

XEPDB1服务

  • XEPDB1Oracle Express Edition 中默认创建的 PDB可插拔数据库)。
  • 通过 XEPDB1 服务连接时,可直接进入到该 PDB 的上下文中,我们开发中多用到。

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

相关文章:

  • 【golang】go errors 处理错误追踪打印堆栈信息
  • 0基础跟德姆(dom)一起学AI 自然语言处理10-LSTM模型
  • 下载b站高清视频
  • 【MySQL】九、表的内外连接
  • 《前端web开发-CSS3基础-1》
  • STM32第十一课:STM32-基于标准库的42步进电机的简单IO控制(附电机教程,看到即赚到)
  • 深入浅出 Pytest:自动化测试的最佳实践 pytest教程 程序测试 单元化测试
  • 面向对象分析和设计OOA/D,UML,GRASP
  • vue代理问题
  • 对计网大题的一些指正(中间介绍一下CDM的原理和应用)
  • 51单片机——按键实验
  • YOLOv10-1.1部分代码阅读笔记-autobackend.py
  • python3GUI--智慧交通监控与管理系统 By:PyQt5
  • Chromebook 的 4 个最佳变声器
  • Dart语言的软件工程
  • 回调机制实现观察者模式
  • 什么是索引
  • PyTorch FlexAttention技术实践:基于BlockMask实现因果注意力与变长序列处理
  • SMMU软件指南之系统架构考虑
  • 【玩转全栈】----Django连接MySQL
  • Verilog语法之generate与genvar用法
  • maven 打包时优先选择本地仓库
  • 小程序学习06——uniapp组件常规引入和easycom引入语法
  • VSCode设置ctrl或alt+mouse(left)跳转
  • 计算机毕业设计Python+Spark中药推荐系统 中药识别系统 中药数据分析 中药大数据 中药可视化 中药爬虫 中药大数据 大数据毕业设计 大
  • 网络攻击原理与常用方法