ORACLE--12C--多租户体系架构概念
一,概念
1,何为多租户?
官网链接: 飞机直达>>
多租户这个概念并不是12C的新特性,而是体系架构,多租户架构使得oracle 数据库成为了一个多租户的容器数据库,也就是container database,也就是CDB。而一个CDB可以包含0个、一个或者多个用户创建的可插入的数据库,也就是pluggable database,也就是PDB,也就是所谓的“租户”。这就像合租房一样,每个租户可以获得其所需的各种资源。也可以说CDB就是各PDB的母体。

2,多租户架构
一个CDB包括零个,一个或多个用户创建的可插拔数据库(PDBs)。PDB是模式、模式对象和非模式对象的可移植集合,在Oracle NET客户机看来,Oracle数据库12c之前的所有Oracle数据库都是非CDB。
ORACLE 12C 是世界上第一款基于云计算设计的多租户数据库,底层为一个多租户的架构,支持云计算(共享软硬件资源,降低成本),等同于把多个数据块当成一个数据块来管理,即共享服务器,共享操作系统,共享数据块
3,CDB容器
容器是多租户体系结构中数据或元数据的逻辑集合。

每个CDB都有以下容器:
01,只有一个CDB根容器(也称为根容器)
cdb根是所有pdb所属的模式、模式对象和非模式对象的集合。根存储Oracle提供的元数据和普通用户。元数据的一个例子是Oracle提供的PL/SQL包的源代码。公共用户是每个容器中已知的数据库用户。根容器名为cdb$root。
02,只有一个系统容器
系统容器包括根CDB和CDB中的所有PDB。因此,系统容器是CDB本身的逻辑容器。
03,零个或多个应用程序容器
应用程序容器仅由一个应用程序根组成,PDB插入到该根。虽然系统容器包含cdb根目录和cdb中的所有pdb,但是应用程序容器只包含插入到应用程序根目录中的pdb。应用程序根属于cdb根,没有其他容器。
04,零个或多个用户创建的PDB
PDB包含特定功能集所需的数据和代码。例如,PDB可以支持特定的应用程序,例如人力资源或销售应用程序。创建CDB时不存在PDB。您可以根据业务需求添加PDB。
PDB正好属于零或一个应用程序容器。如果PDB属于应用程序容器,则它是应用程序PDB。例如,Cust1_PDB和Cust2_PDB应用程序PDB可能属于SaaS_Sales_AC应用程序容器,在这种情况下,它们不属于其他应用程序容器。应用程序种子是可选的应用程序PDB,充当用户创建的PDB模板,使您能够快速创建新的应用程序PDB。
05,只有一个SEED pdb
SEED PDB是由系统提供的模板,CDB可以使用它来创建新的PDB。SEED pdb被命名为pdb$seed。不能在pdb$seed中添加或修改对象。
二, 多租户的优势
1,使用多租户体系结构进行数据库整合优势:
01 降低成本
通过将硬件和数据库基础结构整合到一组后台进程,并高效地共享计算和内存资源,可以降低硬件和维护成本。例如,单个服务器上的100个PDB共享一个数据库实例。
02 更容易、更快速地移动数据和代码
通过设计,您可以快速地将PDB插入CDB,从CDB中拔下PDB,然后将此PDB插入不同的CDB。您还可以在PDB保持可用时克隆它们。您可以使用任何字符集插入PDB,并在不进行字符集转换的情况下访问它。如果cdb的字符集是cdb的字符集是al32utf8,那么同一cdb中可以存在具有不同数据库字符集的pdb。
03 更容易管理和监控物理数据库
CDB管理员可以通过为所有托管租户和CDB根执行单个操作(如修补或执行RMAN备份)将环境作为聚合进行管理。简化了备份策略和灾难恢复。
04 数据和代码分离
虽然PDB合并到一个物理数据库中,但它模拟了非CDB的行为。例如,如果用户错误丢失了关键数据,那么PDB管理员可以使用Oracle Flashback或时间点恢复来检索丢失的数据,而不会影响其他PDB。
05 确保行政职责分离
普通用户可以连接到其具有足够权限的任何容器,而本地用户仅限于特定的PDB。管理者可以按如下方式划分职责:
管理员使用公用帐户管理CDB或应用程序容器。因为权限包含在授予它的容器中,所以一个PDB上的本地用户对同一个CDB中的其他PDB没有权限。
管理员使用本地帐户管理单个PDB。
06 易于性能调整
收集单个数据库的性能指标比收集多个数据库的性能指标更容易。一个SGA的尺寸比100个SGA的尺寸更容易。
07 更少的数据库补丁和升级
对一个数据库应用补丁比对100个数据库应用补丁更容易,对一个数据库进行升级也比对100个数据库进行升级更容易。
2多租户架构对可管理性的好处
01 更容易升级数据和代码
例如,不需要将CDB从一个数据库版本升级到另一个数据库版本,您可以从现有CDB中快速拔出PDB,然后将其从更高版本插入到新创建的CDB中。
02 更容易在服务器之间迁移
要执行负载平衡或满足SLA,您可以将应用程序数据库从本地数据中心迁移到云,或者在同一环境中的两个服务器之间迁移。
03 防止PDB中的数据损坏
您可以将PDB闪存回特定于SCN或PDB的还原点,而不影响其他PDB。此功能类似于非CDB的闪回数据库功能。
能够在单个位置安装、管理和升级特定于应用程序的数据和元数据
您可以将一组特定于应用程序的PDB定义为单个组件,称为应用程序容器。然后可以在此容器中定义一个或多个应用程序。每个应用程序都是此应用程序容器中共享的一组命名的、版本控制的通用元数据和数据。
例如,SaaS供应商的每个客户都可以拥有自己的应用程序PDB。每个应用程序PDB可能都有相同定义的表,名为sales-mlt,每个PDB中有不同的数据。PDB可以共享一个名为“国家”的数据链接公共对象,每个PDB中都有相同的数据。作为应用程序管理员,您可以管理主应用程序定义,以便每个新客户都获得具有相同对象的PDB,并且对现有模式的每个更改(例如,添加新表或更改表的定义)都适用于共享应用程序定义的所有PDB。
04 与Oracle数据库资源管理器集成
在多租户环境中,一个问题是运行在同一服务器上的PDB之间的系统资源争用。另一个问题是限制资源使用以获得更一致、可预测的性能。要解决此类资源争用、使用和监视问题,请使用Oracle数据库资源管理器。
三,查看
1,查看管理用户是否是CDB
SQL> SELECT NAME, CDB, CON_ID FROM V$DATABASE;

select name ,open_mode from v$pdbs ; 查看状态

ORACLE--12C--多租户体系架构概念的更多相关文章
- Oracle 12c多租户架构浅析
Oracle数据库12c的一大创新即是其采用的多租户架构.对于多租户这项新功能,业内的评价褒贬不一.有的声音认为,这项功能的用处不是特别大,但在某些场景或特定的环境下,多租户依然有它的用处.其最大的用 ...
- Oracle 12c 多租户家族(12c 18c 19c)如何在 PDB 中添加 HR 模式
Oracle 12c 多租户家族(12c [12.2.0.1].18c [12.2.0.2].19c [12.2.0.3])如何在 PDB 中添加模式:19c (19.3) 手工添加示例 HR 用户 ...
- oracle 12c多租户下的日常操作变化
Oracle 12c创建用户时出现“ORA-65096: invalid common user or role name”的错误 在oracle中,引入了多租户概念,以前是一个instance对应一 ...
- oracle 12c 多租户 pdb 恢复(单个pdb数据文件、非系统pdb表空间、整个pdb数据库)
环境:数据库版本 Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production 实验准备:1.-- 数据库归 ...
- GoldenGate 12.2抽取Oracle 12c多租户配置过程
linux下安装12c 重启linux之后,dbca PDB/CDB使用 SQL> select instance_name from v$instance; INSTANCE_NAME --- ...
- oracle 笔记---(三)__体系架构
查看控制文件位置 SQL> show parameter control_files; NAME TYPE VALUE ------------------------------------ ...
- Oracle 12c 多租户 CDB 与 PDB 级别 expdb 与 impdb(表、用户、全库)
Oracle 数据库 12 c 多租户下,如何在容器数据库 (CDB) 和可插拔数据库 (PDB) 中使用 expdb 与 impdp (数据泵) 呢? 我们一起探讨下PDB 下进行表级,用户级别,全 ...
- Oracle 12c 多租户在 CDB 中 Plug A PDB,Unplugging A PDB
Oracle 数据库 12 c 中介绍了多租户选项允许单个容器数据库 (CDB) 来承载多个单独的可插拔数据库 (PDB).本文简单的演示了如何在 CDB 中 Plug A PDB,Unpluggin ...
- Oracle 12c 多租户 手工创建 pdb 与 手工删除 pdb
实验环境: SQL> select * from v$version;BANNER ...
随机推荐
- (函数分治法)实现pow函数(x的y次方幂)
题目:实现pow函数. 题目分析:因为一个一个乘,循环太大,参考矩阵连乘问题:对于n=4的话,可以得出x的平方,然后平方与平方相乘.节省计算次数.对于偶数的幂,只要x的平方多次递归调用即可:对于奇数的 ...
- ASP.NET框架获取数据字典数据做成树的格式
private List<TreeEntity> treeList = new List<TreeEntity>();//创建一个树的List集合 public ActionR ...
- eclipse导入tomcat
官网下载tomcat压缩包 官网:http://tomcat.apache.org/ tomcat8:链接:http://pan.baidu.com/s/1kVHAEoR 密码:kyt8 tomcat ...
- svm的第一个实例
用的数据集是uci机器学习库的数据 ‘iris.data’ from sklearn import svm import csv from sklearn.model_selection import ...
- linux下利用httpd搭建tomcat集群,实现负载均衡
公司使用运营管理平台是单点tomcat,使用量大,或者导出较大的运营数据时,会造成平台不可用,现在需要搭建tomcat集群,调研后,决定使用apache的httpd来搭建tomcat集群.以下是搭建步 ...
- c++内存模型------计算机系统核心概念及软硬件实现
c++编程语言有3中不同类项的变量:全局变量.局部变量和动态分配变量.变量的值存储在计算机的内存中,但是变量存储的方式取决于变量的类项.3种类型的变量分别对应存储器中3个特定的区域: 全局变量存放在存 ...
- Delphi XE8中开发DataSnap程序常见问题和解决方法 (二)想对DBExpress的TSQLDataSet写对数据库操作的SQL语句出错了!
当我们搞定DataSnap后,我们进入客户端程序开发阶段了,我们建立了客户端模块后,打算按照刚才开发服务器的步骤开发客户端程序,随后加入了DBExpress的TSQLDataSet,设定数据库连接后, ...
- Scrapy 增量式爬虫
Scrapy 增量式爬虫 https://blog.csdn.net/mygodit/article/details/83931009 https://blog.csdn.net/mygodit/ar ...
- gluster peer probe: failed: Probe returned with unknown errno 107解决方法
当在glusterfs中将服务器加到存储池中,及运行”gluster peer probe server”命令, 遇到peer probe: failed: Probe returned with u ...
- [Swift]八大排序算法(七):归并排序
排序分为内部排序和外部排序. 内部排序:是指待排序列完全存放在内存中所进行的排序过程,适合不太大的元素序列. 外部排序:指的是大文件的排序,即待排序的记录存储在外存储器上,待排序的文件无法一次装入内存 ...