第2章 CDB和PDB操作

2.1 多租户环境下用户的操作及工具

2.1.1 多租户环境

• 规划多租户环境:创建一个具体CDB需要进行认真的思考和规划。当计划一个CDB时,一般要考虑以下的因素:要插入到CDB中的PDB数量;支持CDB的资源需求;应用到整个CDB中的配置包括哪些选项,以及应用到每一个PDB的配置包括哪些选项。

图2-1 新创建的CDB结构

• 创建一个或者多个的CDB:当完成计划后,用户可以使用数据库配置助手(DBCA)或者使用CREATE DATABASE SQL语句创建一个或者多个CDB。当创建一个CDB后,也就创建了根(Root)容器和种子(Seed)容器,根包含了最小的用户数据或非用户数据,种子包含非用户数据。新创建的CDB结构如图2-1所示。

• 创建、插入和拔出PDB:PDB包括用户数据。当用户创建了一个CDB后,就可以创建PDB,将PDB插入CDB中,或者从CDB中拔出PDB;也可以从一个CDB中拔出PDB,然后插入到另一个CDB中;如果用户需要,也可以将PDB从一个CDB移到另一个CDB中。

• 管理和监视CDB:管理和监视CDB包括管理整个CDB、根和PDB的一些属性。CDB和非CDB的一些管理任务相同。

• 管理和监视PDB:管理和监视PDB与管理和监视非CDB相似,但是有区别。

由于在Oracle 12c数据库服务器中一般只有一个CDB数据库,这个数据库中有多个PDB,每个PDB有其相应的用户对其进行操作,因此每个用户通过操作一个应用程序实现对PDB中的数据对象操作,如图2.2所示。Oracle 12c数据库服务器放在世界任何可以连接Internet的地方,这个CDB数据库中有三个PDB数据库,有三个应用(“某学校教学管理” “某公司生产管理”“某医院医疗管理”)对应这三个PDB。这三个应用属于不同应用领域的三个单位所有。假设三个PDB数据库名分别叫PDB1、PDB2和PDB3,三个PDB数据库分别由用户Turing、Smith和Tom进行管理。在CDB数据库已经启动的情况下,当一个用户要操作数据库时,首先要建立一个PDB数据库例程,假设用户Smith在欧洲先操作数据库,Smith就需要先建立一个PDB1数据库例程,然后装载数据库和打开数据库,建立会话session A。用户Smith操作数据库要求数据库参数必须满足其要求,例如时区、货币(单位符号是€)等,假设Smith在创建例程时按其在欧洲的要求定义了这些参数,这样用户Smith就可以操作数据库中“某公司生产管理”应用中的数据表及其他的数据库对象。假设在中国的用户Turing要操作PDB2数据库,其操作的是“某学校教学管理”应用中的表和其他的数据库对象,由于CDB例程已经启动,因此,用户Turing建立PDB2数据库例程、装载PDB2数据库和打开PDB2数据库前就不需要再建立CDB例程了,直接建立会话session B即可,但是用户Turing在中国操作数据库时的参数要符合中国的习惯,例如时区、货币(单位符号是¥)等。这些参数由用户Turing在创建数据库例程时按习惯定义,用户Turing可以在自己的会话session B中设置这些参数值,使其满足我们的习惯和要求。

该例子说明用户在更改数据库初始化参数时,可以按要求更改PDB例程参数,也可以按要求更改会话参数。

从该例子中可以看出,虽然在CDB中有三个PDB数据库,但是这三个PDB数据库PDB1、PDB2和PDB3之间边界非常明确,就是通过PDB数据库名进行界定,不同的数据库用户只能连接到自己对应的PDB数据库。

当然,用户也可以将图2-2中的三个应用放在一个PDB数据库中进行管理,那么,三个应用的边界仍然可以做到非常明确,就是通过表空间进行界定。这是Oracle 12c之前版本的数据库模式,与Oracle 12c要求的数据库云计算不相适应,用户在Oracle 12c中不要使用这种模式。

图2-2 多个租户操作PDB数据库

本书阐述语法过程中,对命令中的语法约定见表2-1所列。

表2-1 命令中的语法约定

2.1.2 多租户环境的操作工具

用户可以使用以下工具完成多租户环境的操作任务。

• SQL *PLUS工具:SQL *PLUS是一个命令行工具,在SQL *PLUS工具中,用户使用SQL语句或者Oracle 12c支持的PL/SQL包可以创建、管理、监视CDB和PDB。

• DBCA工具:Oracle的数据库配置助手(Database Configuration Assistant, DBCA)是一个图形用户界面程序,用户使用该程序可以配置CDB、创建PDB、将PDB插入到CDB或者拔出PDB。

• Oracle企业管理器云控制程序:云控制是一个图形用户界面的系统管理工具,使用该工具用户可以管理和监视CDB及其PDB。

• Oracle SQL Developer:该工具是图形化的SQL *PLUS程序,使用过Oracle的用户普遍反映该工具操作较为方便。

• Server Control程序:使用SRVCTL程序可以创建和管理PDB服务。