首页 > 其他分享 >多租户架构简介

多租户架构简介

时间:2022-10-09 01:55:14浏览次数:77  
标签:架构 CDB 租户 简介 数据库 application Oracle container PDB

 

CDB包括零个、一个或多个客户创建的可插拔数据库 (PDB) 。PDB是模式、模式对象和非模式对象的可移植集合,在 Oracle Net 客户端中显示为非CDB。Oracle Database 12 c之前的所有 Oracle 数据库都是非 CDB。

容器是多租户架构中数据或元数据的逻辑集合。

 

下图表示 CDB 中可能的容器。

 

 

 

Every CDB has the following containers:

  • Exactly one CDB root container (also called simply the root)

    The CDB root is a collection of schemas, schema objects, and nonschema objects to which all PDBs belong (see "Overview of Containers in a CDB"). The root stores Oracle-supplied metadata and common users. An example of metadata is the source code for Oracle-supplied PL/SQL packages (see "Data Dictionary Architecture in a CDB"). A common user is a database user known in every container (see "Common Users in a CDB"). The root container is named CDB$ROOT.

  • Exactly one system container

    The system container includes the root CDB and all PDBs in the CDB. Thus, the system container is the logical container for the CDB itself.

  • Zero or more application containers

    An application container consists of exactly one application root, and the PDBs plugged in to this root. Whereas the system container contains the CDB root and all the PDBs within the CDB, an application container includes only the PDBs plugged into the application root. An application root belongs to the CDB root and no other container.

  • Zero or more user-created PDBs

    A PDB contains the data and code required for a specific set of features (see "PDBs"). For example, a PDB can support a specific application, such as a human resources or sales application. No PDBs exist at creation of the CDB. You add PDBs based on your business requirements.

    A PDB belongs to exactly zero or one application container. If a PDB belongs to an application container, then it is an application PDB. For example, the cust1_pdb and cust2_pdb application PDBs might belong to the saas_sales_ac application container, in which case they belong to no other application containers. An application seed is an optional application PDB that acts as a user-created PDB template, enabling you to create new application PDBs rapidly.

  • Exactly one seed PDB

    The seed PDB is a system-supplied template that the CDB can use to create new PDBs. The seed PDB is named PDB$SEED. You cannot add or modify objects in PDB$SEED.

此示例显示了一个具有五个容器的简单CDB:系统容器(整个CDB)、CDB根、PDB种子(PDB$seed)和两个PDB。每个PDB都有自己的专用应用程序。不同的PDB管理员管理每个PDB。CDB中存在一个具有单一身份的普通用户。在本例中,共有用户SYS可以管理根目录和每个PDB。在物理级别,此CDB与非CDB一样,具有数据库实例和数据库文件。

 CDB with No Application Containers

 

 

 CDB with an Application Container

In this variation, the CDB contains an application container named saas_sales_ac. Within the application container, the application PDB cust1_pdb supports an application for one customer, and the application PDB cust2_pdb supports an application for a different customer. The CDB also contains a PDB named hrpdb, which supports an HR application, but does not belong to an application container.

 

 

 在此示例中,多个 DBA 管理 CDB 环境:

  • CDB 管理员管理 CDB 本身。

  • 应用程序容器管理员管理saas_sales_ac容器,包括应用程序安装和升级。

  • 应用程序 PDB 管理员管理saas_sales_ac容器中的两个 PDB:cust1_pdbcust2_pdb.

  • PDB 管理员管理hrpdb.

关于多租户体系结构的用户界面

 

您可以对 CDB 和非 CDB 使用相同的管理工具。

 

界面描述也可以看看

用于命令行访问的 SQL*Plus 和 SQL Developer

SQL*Plus 是随 Oracle 数据库一起安装的交互式批处理查询工具。

SQL*Plus 用户指南和参考

Oracle Enterprise Manager 云控制(云控制)

Cloud Control 是一个提供图形用户界面 (GUI) 的 Oracle 数据库管理工具。Cloud Control 支持Oracle Database 12c目标,包括 PDB、CDB 和非 CDB。

Cloud Control 联机帮助

Oracle Enterprise Manager Database Express (EM Express)

EM Express 是内置于 Oracle 数据库中的基于 Web 的管理产品。EM Express 使您能够配置和管理 PDB,包括以下操作:

  • 创建和删除 PDB

  • 插入和拔出和 PDB

  • 克隆 PDB

  • 为 PDB 设置资源限制

Oracle 数据库性能调优指南,了解有关使用 EM Express 管理 CDB 和 PDB 的更多信息

Oracle 数据库配置助手 (DBCA)

DBCA 是一个具有图形用户界面的实用程序,使您能够创建和复制 CDB。它还使您能够创建、重新定位、克隆、插入和拔出 PDB。

Oracle Database Performance Tuning GuideOracle Database Administrator's Guide了解有关 DBCA 的更多信息

多租户架构的好处

多租户架构解决了传统非 CDB 架构带来的几个问题。

 

非 CDB 架构的挑战

 

大型企业可能使用成百上千的数据库。这些数据库通常在多个物理服务器上的不同平台上运行。

由于硬件技术的改进,尤其是 CPU 数量的增加,服务器可以处理比以前更重的工作负载。一个数据库可能只使用服务器硬件容量的一小部分。这种方法浪费了硬件和人力资源。

例如,100 台服务器可能每台都有一个数据库,每个数据库使用 10% 的硬件资源和 10% 的管理员时间。一个 DBA 团队必须分别管理每个数据库的 SGA、数据库文件、帐户、安全等,而系统管理员必须维护 100 台不同的计算机。

 

 

 从Oracle Database 12c第 2 版 (12.2) 开始,您可以创建一个包含应用程序 PDB 的应用程序容器。这种方法使您能够在此容器中创建和管理应用程序。适用于整合到 CDB 中的大多数好处也适用于应用程序容器内的整合。

使用多租户架构进行数据库整合具有以下优势:

  • 降低成本

    通过将硬件和数据库基础架构整合到一组后台进程,并有效地共享计算和内存资源,您可以降低硬件和维护成本。例如,一台服务器上的 100 个 PDB 共享一个数据库实例。

  • 更轻松、更快速地移动数据和代码

    根据设计,您可以快速将 PDB 插入 CDB,从 CDB 中拔出 PDB,然后将此 PDB 插入不同的 CDB。您还可以在 PDB 保持可用时克隆它们。您可以使用任何字符集插入 PDB 并在不进行字符集转换的情况下访问它。如果 CDB 的字符集是 AL32UTF8,那么具有不同数据库字符集的 PDB 可以存在于同一个 CDB 中。

  • 更轻松地管理和监控物理数据库

    CDB 管理员可以通过对所有托管租户和 CDB 根执行单个操作(例如修补或执行 RMAN 备份)将环境作为一个聚合来管理。简化了备份策略和灾难恢复。

  • 数据和代码分离

    尽管整合到单个物理数据库中,但 PDB 模仿了非 CDB 的行为。例如,如果用户错误丢失了关键数据,那么 PDB 管理员可以使用 Oracle 闪回或时间点恢复来检索丢失的数据,而不会影响其他 PDB。

  • 确保行政职责分离

    普通用户可以连接到它拥有足够权限的任何容器,而本地用户则被限制在特定的 PDB 上。管理员可以按如下方式划分职责:
    • 管理员使用通用帐户来管理 CDB 或应用程序容器。因为权限包含在授予权限的容器中,所以一个 PDB 上的本地用户对同一 CDB 中的其他 PDB 没有权限。

       

    • 管理员使用本地帐户来管理单个 PDB。

  • 易于性能调整

    收集单个数据库的性能指标比收集多个数据库更容易。确定一个 SGA 的大小比确定 100 个 SGA 的大小更容易。

  • 更少的数据库补丁和升级

    对一个数据库打补丁比对 100 个数据库打补丁更容易,升级一个数据库比升级 100 个数据库更容易。

多租户架构对可管理性的好处

 

多租户架构具有数据库整合之外的优势。这些好处来自于将特定于 PDB 的数据和元数据存储在 PDB 本身中,而不是将所有字典元数据存储在一个位置。

通过存储自己的字典元数据,PDB 变得更容易作为一个独立的单元进行管理。即使只有一个 PDB 驻留在 CDB 中,这种优势也会出现。将 PDB 分组到单独管理的应用程序容器中可以进一步提高可管理性。

在 CDB 中,数据字典元数据在根和 PDB 之间拆分。数据字典分离的好处包括:

  • 更容易升级数据和代码

    例如,无需将 CDB 从一个数据库版本升级到另一个,您可以快速从现有 CDB 中拔出 PDB,然后将其插入更高版本的新创建的 CDB。

  • 更容易在服务器之间迁移

    要执行负载平衡或满足 SLA,您可以将应用程序数据库从本地数据中心迁移到云端,或在同一环境中的两台服务器之间迁移。

  • 防止 PDB 中的数据损坏

    您可以将 PDB 闪回到 SCN 或特定于 PDB 的还原点,而不会影响其他 PDB。此功能类似于非 CDB 的闪回数据库功能。

  • 能够在一个地方安装、管理和升级特定于应用程序的数据和元数据

    您可以将一组特定于应用程序的 PDB 定义为单个组件,称为应用程序容器。然后,您可以在此容器中定义一个或多个应用程序。每个应用程序都是在此应用程序容器内共享的一组命名的、版本化的通用元数据和数据。

    例如,SaaS 供应商的每个客户都可以拥有自己的应用程序 PDB。每个应用程序 PDB 可能具有相同定义的表,名为sales_mlt,每个 PDB 中具有不同的数据。PDB 可以共享一个名为的数据链接公共对象countries_olt,该对象在每个 PDB 中具有相同的数据。作为应用程序管理员,您可以管理主应用程序定义,以便每个新客户都获得具有相同对象的 PDB,以及对现有模式的每次更改(例如,添加新表或更改table) 适用于共享应用程序定义的所有 PDB。

  • 与 Oracle 数据库资源管理器集成

    在多租户环境中,一个问题是在同一服务器上运行的 PDB 之间争用系统资源。另一个问题是限制资源使用以获得更一致、可预测的性能。要解决此类资源争用、使用和监控问题,请使用 Oracle 数据库资源管理器。

数据库整合之路

 

在其存在期间,数据库要么是 CDB,要么是非 CDB。

您必须在创建时将数据库定义为 CDB,然后在此 CDB 中创建 PDB 和应用程序容器。以后不能将非 CDB 转换为 CDB,或将 CDB 转换为非 CDB。

 

Creation of a CDB

The CREATE DATABASE ... ENABLE PLUGGABLE DATABASE SQL statement creates a new CDB.

If you do not specify the ENABLE PLUGGABLE DATABASE clause, then the newly created database is a non-CDB. In this case, the non-CDB can never contain PDBs.

When you create a CDB, Oracle Database automatically creates a root container (CDB$ROOT) and a seed PDB (PDB$SEED). The following graphic shows a newly created CDB:

 

 The following simple query determines whether the database to which an administrative user is currently connected is a non-CDB, or a container in a CDB:

SQL> SELECT NAME, CDB, CON_ID FROM V$DATABASE;
 
NAME      CDB     CON_ID
--------- --- ----------
CDB1      YES          0

Creation of a PDB

The CREATE PLUGGABLE DATABASE SQL statement creates a PDB.

创建的PDB自动包含一个完整的数据字典,其中包括元数据和指向CDB根目录中系统提供的对象的内部链接。必须从单个根定义每个PDB:CDB根或应用程序根。

每个PDB都有一个全局唯一标识符(GUID)。PDB GUID主要用于生成存储PDB文件的目录的名称,包括Oracle Managed files目录和非Oracle Managed File目录。

 

 

 

 

 

In this variation, the CDB contains an application container named saas_sales_ac. Within the application container, the application PDB cust1_pdb supports an application for one customer, and the application PDB cust2_pdb supports an application for a different customer. The CDB also contains a PDB named hrpdb, which supports an HR application, but does not belong to an application container.

标签:架构,CDB,租户,简介,数据库,application,Oracle,container,PDB
From: https://www.cnblogs.com/wonchaofan/p/16770826.html

相关文章

  • 深入Linux内核架构 pdf
    高清扫描版下载链接:https://pan.baidu.com/s/1s1vZTJ5SQwZIbOOJTeTNMg点击这里获取提取码 ......
  • nats 简介和使用
    nats简介和使用nats有3个产品core-nats:不做持久化的及时信息传输系统nats-streaming:基于nats的持久化消息队列(已弃用)nats-jetstream:基于nats的持久化......
  • 系统架构模式
    软件架构师和开发人员使用许多体系结构模式。以下是一些模式(混合体系结构样式和体系结构模式)::简单CRUD、单层级、单层。传统N分层。域驱动设计N分层。清......
  • 玩转分布式架构下的可观测性
    可观测性背景云原生可观测性是从传统软件监控及数据分析可视化工具中,总结出在云原生领域中,从底层容器基础设施、通用技术组件到业务应用系统全链路监控运维、运营治理等产品......
  • JSP快速上手与MVC模式和三层架构的知识点总结+综合案例
    阅读提示:说明由于JSP实在是太难读难写复杂占资源难调试不分离了,拉跨!(节目效果哈,勿喷),作为一种有(ji)更(hu)好(jiu)的(yao)上(bei)位(tao)替(tai)代(le)的技术,本着为了体现新技......
  • 新零售SaaS架构:中央库存系统架构设计
    近年来,越来越多的零售企业大力发展全渠道业务。在销售额增长上,通过线上的小程序、直播、平台渠道等方式,拓展流量变现渠道。在会员增长方面,通过多样的互动方式,全渠道触达消......
  • 月薪25K-35K|格灵研究院招聘算法工程师、Java架构师
    3D视觉工坊致力于推荐最棒的工作机会,精准地为其找到最佳求职者,做连接优质企业和优质人才的桥梁。公司介绍深圳市格灵人工智能与机器人研究院(以下简称“格灵研究院”)位于深圳......
  • 客快物流大数据项目(七十八):Hue简介
    文章目录​​Hue简介​​​​一、Hue介绍​​​​二、Hue整合大数据技术栈架构​​​​三、支持连接到的数据库​​​​四、 官方网址​​Hue简介一、Hue介绍HUE是一个开源......
  • SDWAN优化金融行业网络架构
    SD-WAN技术的引入可以提高管理地理分布的企业数据传输网络的效率,通过全球网络部署简化工作,甚至为网络服务提供了更好的体验。在数字化转型时期,当信息技术逐渐从业务支撑部件......
  • Beats 入门实战(1)--简介
    Beats是轻量级(资源高效,无依赖性,小型)和开放源代码日志发送程序的集合,这些日志发送程序充当安装在基础结构中不同服务器上的代理,用于收集日志或指标;本文主要介绍Beats的理......