Oracle20C多租户_1.2数据库与实例介绍-创新互联

1.2  数据库和实例

Oracle 数据库服务器由一个数据库和至少一个数据库实例组成,通常简称为一个实例。

创新互联主要从事网站制作、成都网站设计、网页设计、企业做网站、公司建网站等业务。立足成都服务丰台,10年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18982081108

因为一个实例和一个数据库是如此紧密地联系在一起,所以 Oracle 数据库这个术语有时同时指实例和数据库。 最严格地说,这些术语有下列含义 :

l   数据库

数据库是一组位于磁盘上的文件,用于存储用户数据。 这些数据文件可以独立于数据库实例而存在。 从 Oracle 数据库 20c 开始, “ 数据库 ” 特指多租户容器数据库 (CDB) 、可插拔数据库 (PDB) 或应用程序容器的数据文件。

l   实例

实例是一组命名的内存结构,用于管理数据库文件。 数据库实例由共享内存区域 ( 称为系统全局区域 (SGA)) 和一组后台进程组成。 实例可以独立于数据库文件而存在。

1.2.1  多租户架构

多租户体系结构使 Oracle 数据库成为 CDB 。

每个 Oracle 数据库必须包含或能够包含另一个数据库。 例如, CDB 包含 pdb ,而应用程序容器包含应用程序 pdb 。 PDB 由 CDB 或应用程序容器包含,而应用程序容器由 CDB 包含。

从 Oracle Database 20c 开始,多租户容器数据库是唯一受支持的体系结构。 在以前的版本中, Oracle 支持非容器数据库 (non-container databases, non-CDBs) 。

1.2.1.1  CDBs

一个 CDB 包含一个或多个用户创建的 pdb 和应用程序容器。

在物理级别上, CDB 是一组文件 : 控制文件、在线重做日志文件和数据文件。 由数据库实例管理以上文件称为 CDB 。

下图显示了一个 CDB 和一个相关的数据库实例。

·          图 1-1 数据库实例与 CDB

  Oracle 20C 多租户_1.2 数据库与实例介绍

1.2.1.2  PDBs

PDB 是 schemas 、 schema 对象和 nonschema 对象的可移动集合,在应用程序中作为单独的数据库出现。

在物理级别,每个 PDB 都有自己的一组数据文件,用于存储 PDB 的数据。 CDB 包括所有 pdb 数据文件,以及一组存储 CDB 本身元数据的系统数据文件。

要移动或存档 PDB ,可以拔掉它。 unplugged PDB 由 PDB 数据文件和元数据文件组成。 unplugged PDB 在插入到 CDB 之前是不可用的。

下图显示了一个名为 MYCDB 的 CDB 。

·          图 1-2 CDB 中的 PDBs

Oracle 20C 多租户_1.2 数据库与实例介绍 

在物理上, MYCDB 是一个 Oracle 数据库,即与一个实例关联的一组数据文件。 尽管在 Oracle Real 应用程序集群中可以有多个实例,但 MYCDB 只有一个数据库实例和一组数据库文件。

MYCDB 包含两个 pdb: hrpdb 和 salespdb 。 如图 1-2 所示,这些 pdb 在各自的应用程序中显示为单独的、独立的数据库。 应用程序不知道它是连接到 CDB 还是 PDB 。

要管理 CDB 本身或其中的任何 PDB ,您可以连接到 CDB root 。 root 是所有 pdb 和应用程序容器所属的模式、模式对象和非模式对象的集合。

·          1.2.1.3 应用程序容器

应用程序容器是 CDB 中一个可选的、用户创建的容器,用于存储一个或多个应用程序的数据和元数据。

application( 也称为主应用程序定义 ) 是存储在 application root  中的一组已命名的、版本化的公共数据和元数据。 例如, application 可能包括表、视图、用户帐户和 PL/SQL 包的定义,这些定义对于一组 pdb 是通用的。

在某些方面,应用程序容器充当 CDB 中的特定于应用程序的 CDB 。 与 CDB 本身一样,一个应用程序容器可以包含多个应用程序 pdb ,并允许这些 pdb 共享元数据和数据。 在物理级别上,应用程序容器 像 PDB 一样 , 具 有自己的一组数据文件。

例如, SaaS 部署可以使用多个应用程序 pdb ,每个 pdb 用于一个单独的客户,该客户共享应用程序元数据和数据。 例如,在下面的图中, sales_app 是应用程序根目录中的应用程序模型。 名为 cust1_pdb 的应用程序只包含客户 1 的销售数据,而名为 cust2_pdb 的应用程序只包含客户 2 的销售数据。 对于单个客户 PDBs ,可以进行插入、拨出、克隆和其他 pdb 级操作。

·          图 1-3 SaaS 用例

  Oracle 20C 多租户_1.2 数据库与实例介绍

·          1.2.2 Sharding 架构

Oracle Sharding 是一种基于跨多个 pdb 的数据水平分区的数据库扩展技术。 应用程序将 PDBs 池视为单个逻辑数据库。

sharding 对于 OLTP 应用程序的主要好处包括线性可伸缩性、故障包容和地理数据分布。 sharding 非常适合在 Oracle 云中部署。 与实现 sharding 的 NoSQL 数据存储不同, Oracle sharding 提供了 sharding 的优点,同时又不牺牲企业 RDBMS 的功能。

在 sharding 架构中,每个 CDB 都托管在一个专用服务器上,服务器上有自己的本地资源 :CPU 、内存、 flash 或磁盘。 可以将 PDB 指定为 shard 。 来自不同 cdb 的 PDB  shard 组成一个逻辑数据库,称为 sharded   数据库。 同一个 CDB 中的两个 shard 不能是同一个 sharded 数据库的成员。 但是,在同一个 CDB 中,一个 PDB 可以在一个 sharded 数据库中,另一个 PDB 可以在一个单独的 sharded 数据库中。

水平分区将一个数据库表拆分,每个分片包含具有相同列但不同行的子集。 以这种方式分割的表也称为 sharded table 。 下图显示了一个经过水平分割的 sharded table ,它横跨三个 shards ,每个 shard 都是单独 CDB 中的 PDB 。

图 1-4 水平分区的 sharded table

Oracle 20C 多租户_1.2 数据库与实例介绍

以下示例是跨多个 CDBs 存储客户帐户数据。 例如, ID 为 28459361 的客户可以查询他的记录。 下图显示了一种可能的结构。 客户请求通过连接池路由,其中分片控制器 ( 网络监听器 ) 将请求定向到适当的 PDB 分片,该分片包含所有客户行。

Figure 1-5 Oracle Sharding Architecture

Oracle 20C 多租户_1.2 数据库与实例介绍


网页名称:Oracle20C多租户_1.2数据库与实例介绍-创新互联
网页URL:http://hbruida.cn/article/pccgp.html