欢迎光临
我们一直在努力

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

1.2 
数据库和实例

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

因为一个实例和一个数据库是如此紧密地联系在一起,所以
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

 

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


 

在物理上,
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
用例

 

·
        

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


以下示例是跨多个
CDBs
存储客户帐户数据。
例如,
ID

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

Figure 1-5 Oracle Sharding Architecture

赞(0)
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。