欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 美食 > Oracle 多租户架构简介

Oracle 多租户架构简介

2025/2/7 6:01:50 来源:https://blog.csdn.net/feyehong/article/details/144856604  浏览:    关键词: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 的上下文中,我们开发中多用到。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com