Oracle Database 12C 学习之多租户(连载一)

简介:

关于可插拔数据库,或者叫做多租户环境这一部分的内容,在oracle 12c的官方文档Database Administrator's Guide中,其第六部分即为多租户环境管理。

从第36到第46章,一共用了11章的内容来详细介绍其内容和相关操作实验。链接如下:

https://docs.oracle.com/database/121/ADMIN/toc.htm

另外,在oracle官方网站上,也有关于多租户的白皮书,链接如下:

http://www.oracle.com/technetwork/database/multitenant/overview/index.html

可见,这一部分的内容,可以算得上是12c中最重要的新特性之一了,甚至几乎木有之一。因此,这块的内容,我把它作为Oracle Database 12C 学习系列的最后一部分内容,算作压轴了吧。当然,12c新特性细节太多,比如说em12c等等,后面我们会继续深入研究。

这一系列的内容,以多租户白皮书为主,参考12c官方文档中的管理员手册,以及Darl Kuhn的《深入理解Oracle 12c 数据库管理》第2版,同时再间以查阅网上诸多的文章整理而成。当然,中间会有不少实验。数据库版本为12.1.0.2,os为rhel6.4 64位。

Oracle Multitenant(多租户)为oracle数据库12c企业版中的一个新特性,它可以通过简化集成、配置以及升级等多方面的工作来帮助用户降低IT成本。该架构允许使用一个容器数据库(container database)来管理多个可插拔数据。同时还照旧支持oracle的其他功能,比如说RAC,或者ADG等。一个现有的数据库,可以经过简单的调整,就能够成为一个可插拔数据库。并且不需要对连接到该数据库上的应用程序做任何改动。

使用该架构,可以有如下好处:

1,高整合密度。

连接在一个容器数据库上的多个可插拔数据库能够共享内存及后台进程。从而可以让你在单一平台上管理并维护多个数据库。

2,使用SQL实现快速配置与克隆

一个可插拔数据库能够被从一个容器数据库上拔出,然后插到另外一个容器数据库上。当然,你还可以克隆这个可插拔数据库。这些操作都可以通过sql完成,并且只需要数秒钟就可以搞定。

3,快速打补丁及升级

给一个容器数据库打补丁,可以让该补丁在所有连接到该容器数据库的可插拔数据库上生效。如果只想给一个可插拔数据库打补丁,你只需要将其拔出即可。

4,像管理一个数据库那样来管理多个数据库

通过将现有的多个数据库整合到一起,我们管理这些数据库的时候,就像是在管理一个数据库。比如,备份操作和灾难恢复等可以在容器数据库级别完成。

5,可插拔数据库之间的动态资源管理

12c中,资源管理器(Resource Manager)可以在一个容器数据库中的多个可插拔数据库之间动态管理资源分配。

在多租户架构中,将会有如下三个组成部分:

1,ROOT

一个名为CDB$ROOT的根容器。该容器包含有主数据字典视图,内容为与根容器有关的元数据和所有插在其上的可插拔数据库的信息。

2,Seed

一个名为PDB$SEED的种子容器。用来提供数据文件和元数据模板,从而创建新的可插拔数据库。

3,PDBs

0个,1个或者多个可插拔数据库。(12.1中,最多可以到252个)。每个可插拔数据库都是独立的,功能与非CBD数据库一样。每个可插拔数据库都会有自己的数据文件和对象。当用户连接到可插拔数据库时,不会感觉到CDB中的根容器和其他可插拔数据库的存在。也就是物理集中,逻辑隔离。

例如我们当前的实验环境:

SYS@ora12c> show pdbs;



CON_ID CON_NAME  OPEN MODE RESTRICTED

---------- ------------------------------ ---------- ----------

 2 PDB$SEED  READ ONLY NO

 3 ORA12C_PDB1  MOUNTED

--当前有一个PDB

SYS@ora12c> show user con_id con_name

USER is "SYS"

CON_ID

------------------------------

1

CON_NAME

------------------------------

CDB$ROOT

--当前操作的数据库为根容器数据库。

基于这种多租户的环境,oracle从12c开始引入了CDB级别的数据字典。也就是说,在原有的DBA_,ALL_,USER_级别的数据字典之上,又新添加了一个级别。CDB级别的视图,含有CDB中所有容器(根,种子,以及所有可插拔数据库)的信息。例如,CDB_USERS。

解释:

1,连接到CDB,实际上就是连接到CDB$ROOT。根容器主要作用,就是容纳所有相关PDB的元数据。

2,可以使用sys用户访问根容器,跟访问非CDB数据库一样。

3,种子容器只是用于创建可插拔数据库。你可以连接种子容器,但是其本身是read only的。你不能使用它执行任何事务。

4,可插拔数据库需要使用独立的命名空间。在CDB中,每个可插拔数据库都必须拥有唯一的名称。但是在可插拔数据库内部,可以使用非CDB数据库的命名规则。比如,在某一个可插拔数据库中,表空间和用户必须拥有唯一的名称。

5,每个可插拔数据库都拥有自己的system以及sysaux,以及临时表空间。

6,如果某一个可插拔数据库没有自己的临时表空间,可以使用根容器的temp文件。

7,每个可插拔数据库都有自己的DBA/ALL/USER视图。

8,在CDB中定义的字符集也可应用于它含有的所有的PDB。

9,可以为CDB和所有PDB设置统一的时区时间,也可以为每个PDB单独设置。

10,使用sys连接根容器后,可以启动和停止CDB,也可以操作任意PDB。但是连接到某一PDB之后,就只能操作该PDB。

11,在启动时实例会读取初始化参数文件。使用特权用户连接到根容器可以修改所有初始化参数。连接到某一可插拔数据库之后,则只能修改该数据库的参数。v$parameter视图新添加了ispdb_modifiable列,用于指定当特权用户连接到可插拔数据库时可以修改的参数。

12,应用程序只能通过网络连接数据库。所以,如果想连接到某一可插拔数据库,则监听也需要处理与该可插拔数据库相关的服务。

13,单个可插拔数据库不能单独启动和停止。更确切点说,可插拔数据库只有打开和关闭两种状态。

14,CDB有一组控制文件,当特权用户连接到根容器时,可以管理这些控制文件。

15,CDB有一个UNDO表空间,所有可插拔数据库都使用同一个UNDO表空间。

16,只有使用特权用户连接到根容器时,才能够进行启用归档和切换日志操作。

17,CDB有一个告警日志和一组跟踪文件,所有的PDB都会写入同一个告警日志。

18,每个容器都有自己唯一的ID。根容器为1,种子容器为2,其他PDB以此类推。

19,如果设置闪回区的话,则无法在闪回区中为单个PDB创建目录。闪回区中存储的是CDB的备份文件,控制文件以及联机日志。不会将PDB分别存储到不同的目录中。

20,连接到根容器上,可以启用和禁用闪回,但是无法启用可插拔数据库级别的闪回。

21,AWR,ADDH,ASH报告可以反映CDB中所有PDB的信息。

22,v$sql以及v$sqlarea都包含有con_id列,可以用来查看某一PDB的信息。


本文来自云栖社区合作伙伴“DBGEEK”

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
6天前
|
存储 NoSQL Oracle
Oracle 12c的内存列存储:数据的“闪电侠”
【4月更文挑战第19天】Oracle 12c的内存列存储以超高速度革新数据处理,结合列存储与内存技术,实现快速查询与压缩。它支持向量化查询和并行处理,提升效率,但需合理配置以平衡系统资源。作为数据管理员,应善用此功能,适应业务需求和技术发展。
|
6天前
|
存储 Oracle 关系型数据库
Oracle 12c的多重索引:数据的“多维导航仪”
【4月更文挑战第19天】Oracle 12c的多重索引提升数据查询效率,如同多维导航仪。在同一表上创建针对不同列的多个索引,加速检索过程。虽然过多索引会增加存储和维护成本,但合理选择和使用索引策略,结合位图、函数索引等高级特性,能优化查询,应对复杂场景。数据管理员应善用这些工具,根据需求进行索引管理,支持企业数据分析。
|
6天前
|
存储 Oracle 数据管理
Oracle 12c的自动数据优化(ADO)与热图:数据管理的“瘦身”与“透视”艺术
【4月更文挑战第19天】Oracle 12c的ADO和热图技术革新数据管理。ADO智能清理无用数据,优化存储,提升查询速度,实现数据"瘦身";热图则以直观的视觉表示展示数据分布和状态,助力识别性能瓶颈,犹如数据的"透视"工具。这两项技术结合,强化数据管理,为企业业务发展保驾护航。
|
6天前
|
Oracle 安全 数据管理
Oracle 12c多租户架构:数据管理的“摩天大楼”
【4月更文挑战第19天】Oracle 12c的多租户架构允许多个独立数据库环境在同一实例中共享资源,提高效率,降低成本。该架构保证了数据隔离和安全性,同时提供灵活性和可扩展性,简化管理任务。通过理解其原理和管理方法,我们可以充分利用这一架构,为企业数据管理和业务发展提供强大支持。
|
4月前
|
SQL Oracle 关系型数据库
oracle学习
oracle学习
27 0
|
1月前
|
Oracle 关系型数据库 Linux
服务器Centos7 静默安装Oracle Database 12.2
服务器Centos7 静默安装Oracle Database 12.2
86 0
|
2月前
|
SQL 存储 关系型数据库
MySQL技能完整学习列表——1、数据库基础概念——1、关系型数据库(Relational Database)
MySQL技能完整学习列表——1、数据库基础概念——1、关系型数据库(Relational Database)
179 0
|
4月前
|
Oracle 关系型数据库 数据库
windows Oracle Database 19c 卸载教程
打开任务管理器 ctrl+Shift+Esc可以快速打开任务管理器,找到oracle所有服务然后停止。 停止数据库服务 在开始卸载之前,确保数据库服务已经停止。你可以使用以下命令停止数据库服务: net stop OracleServiceORCL Universal Installer 卸载Oracle数据库程序 一般情况运行Oracle自带的卸载程序,如使用Universal Installer 工具卸载。 点击开始菜单找到Oracle,然后点击Oracle安装产品,再点击Universal Installer。 点击之后稍等一会然后会进入进入下图界面,点击卸载产品。 选中要删除的Orac
118 1
|
3月前
|
Oracle 关系型数据库 数据库连接
【Oracle学习】—新建数据库连接,超详细
【Oracle学习】—新建数据库连接,超详细
|
3月前
|
Oracle 关系型数据库 数据库
【Oracle学习】—Oracle11g修改用户名与密码(一)
【Oracle学习】—Oracle11g修改用户名与密码(一)

推荐镜像

更多