欢迎访问深圳敏捷云计算科技有限公司!

甲骨文云 Multitenant DB 3 : 轻松云服务器的数据字典体系 CDB-PDB

2024-01-15 原创文章

在用户和应用程序的视角中,CDB(容器数据库)中每个容器的数据字典是独立的,就像在非CDB(非容器数据库)中一样。

例如,在每个PDB(可插拔数据库)中的DBA_OBJECTS视图可能显示不同数量的行。这种字典分离使得Oracle数据库能够将各个PDB与根数据库分开管理。

在CDB中,数据字典元数据在根和PDB之间进行了分割。如果USER$表在PDB数据库中,则此用户数据的数据字典也位于PDB中。因此,PDB中的TAB$表为雇员表和部门表各有一行。

PDB和根中的数据字典视图包含不同的行。

在容器数据库中:


在可插拔数据库中:

在内部,Oracle提供的对象,如数据字典表定义和PL/SQL包,只在根中表示。

这种架构在CDB内实现了两个主要目标:

1、减少重复
例如,CDB不需要在每个PDB中存储DBMS_ADVISOR PL/SQL包的源代码,而只需在CDB$ROOT中存储一次,这样可以节省磁盘空间。


2、简化数据库升级


如果数据字典表的定义存在于每个PDB中,并且如果这些定义在新版本中发生变化,则每个PDB都需要单独升级以捕获该变化。在根中只存储一次表定义就消除了这个问题。


CDB使用内部链接机制来分隔数据字典信息。使用了三种类型的链接。

元数据链接

Oracle数据库只在CDB根中存储关于字典对象的元数据。例如,OBJ$字典表的列定义(这是DBA_OBJECTS数据字典视图的基础)只存在于根中。每个PDB中的OBJ$表使用一种称为元数据链接的内部机制,指向存储在根中的OBJ$定义。
与元数据链接相关的数据存储在其PDB中,而不是在根中。例如,如果您在hrpdb中创建表mytable并向其添加行,则这些行存储在PDB数据文件中。

数据链接

在某些情况下,Oracle数据库只在应用根中一次性存储对象的数据(不仅仅是元数据)。应用PDB使用一种称为数据链接的内部机制来引用应用根中的对象。创建数据链接的应用PDB还存储数据链接描述。数据链接继承了它所引用的对象的数据类型。

扩展数据链接

扩展数据链接是数据链接和元数据链接的混合体。与数据链接一样,扩展数据链接引用应用根中的对象。然而,扩展数据链接还指向应用PDB中的相应对象。与元数据链接一样,应用PDB中的对象从应用根中的相应对象继承元数据。
在应用根中查询时,一个扩展数据链接对象只从应用根获取行。然而,在应用PDB中查询时,一个扩展数据链接对象从应用根和应用PDB获取行。

Oracle数据库自动创建并管理到CDB$ROOT的元数据和数据链接。用户不能添加、修改或移除这些链接。


开启您的Oracle云之旅:Agilewing - 您的智能云服务伙伴

作为Oracle的高级合作伙伴,Agilewing正重新定义企业体验Oracle云服务的方式。借助于其简化的开户流程和一流的技术支持,Agilewing将复杂的开户和操作流程转化为一种轻松、直观的体验。通过我们的一站式服务,您可以迅速开启并享受Oracle云的全方位服务,从而无缝融入云端世界。

Agilewing的AgileCDN服务,结合了OCI的云基础服务,提供了一流的全球内容加速解决方案。超过2800个全球POP节点和7000个直连点的强大网络,确保了无论您的业务扩展到全球哪个角落,都能保持高效稳定的运行。

利用Oracle云的先进技术,Agilewing致力于简化云服务搭建、云迁移和业务出海的过程。我们的合作模式为客户带来经济高效的解决方案,使他们能够更加专注于核心业务,同时享受Oracle云的高性能和安全保障。

Oracle云服务,作为一个充满潜力的领域,以其高性能、安全性和全球统一的服务标准,为各类企业开启了新的机遇之门。通过Agilewing的专业服务,无论是个人用户还是企业,都能轻松步入这个充满技术革新和高效能的新时代。现在,就让Agilewing引领您开始探索Oracle云服务,打开一个全新的世界大门。

如您想咨询 Oracle 的相关业务,可联系搜索微信号:lhh1843812463woshiwhw123

或者可以进入以下群组进行咨询:

微信公众号

微信技术交流社群: