Oracle多租户架构

张开发
2026/6/7 22:34:25 15 分钟阅读
Oracle多租户架构
作者IT邦德中国DBA联盟(ACDU)成员15年DBA工作经验Oracle、PostgreSQL ACECSDN博客专家及B站知名UP主全网粉丝15万擅长主流Oracle、MySQL、PG、高斯及Greenplum备份恢复安装迁移性能优化、故障应急处理文章目录1.多租户架构2.CDB 根容器3.PDB4.容器逻辑结构1.多租户架构容器是多租户容器数据库CDB中模式、对象和相关结构的集合在逻辑上应用程序将其显示为单独的数据库。在 CDB 中每个容器都有一个唯一的 ID 和名称。 根和每个可插拔数据库pdb都被视为一个容器。pdb 隔离数据和操作因此从用户或应用程序的角度来看每个 pdb 看起来都像是传统的非 cdb。2.CDB 根容器根容器是所有 pdb 所属的模式、模式对象和非模式对象的集合。每个 cdb 都有且只有一个根容器根容器被命名 CDB$ROOT。用于存储管理 pdb 所需的系统元数据。 所有pdb 都属于根目录。 根目录不存储用户数据。因此不能将用户数据添加到根目录或修改根目录中系统提供的架构。但是可以为数据库管理创建公共用户和角色。3.PDBpdb 是用户创建的一组模式、对象和相关结构在逻辑上对应用程序显示为单独的数据库。每个 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 表空间。1SYSTEM and SYSAUX tablespaces for every container2每个 pdb 都有自己的一组非系统表空间。这些表空间包含 pdb 中用户定义的模式 和对象的数据。 在 pdb 中管理永久表空间和临时表空间的方式与在非 cdb 中管理它们的方式相同。3CDB 根存在一个默认临时表空间每个 PDB 都有一个临时表空间。

更多文章