**CBD 的组成**
1. root 一个CDB只有一个root,在CDB内root被标识为CDB$ROOT并包含所有PDB的元数据
2. seed 种子PDB,被标识为PDB$SEED,是创建新的PDB的模板,只读并不可修改
3. PDB 可插拔数据库,对终端用户来说和传统的一样,完全兼容以前的数据库
以上三个组件组成一个容器,被称为 CDB ,也叫 多租户环境
CDB用户
普通用户 在root和所有的PDB种拥有相同的标识
本地用户 PDB自己使用
CBD创建
PDB创建
CDB 组件
root 、seed、 pdb
多租户的优势
- 降低成本;
- 更容易、更快速地移动数据和代码;
- 更方便管理和监视物理数据库;
- 数据与代码分离/PDB独立资源
- 易于进行性能调整‘
- 对oralce数据库资源管理器的支持
- 更少的修补程序个升级
管理多租户环境
- 多租户环境规划
- 创建CDB
- 创建PDB
- 插入PDB
- 拔出PDB
- 管理和监视CDB
- 管理和监视PDB
多租户环境规划
将插入每个CDB的PDB数量
支持计划CDB所需的资源
容器管理策略在整个CDB上作为聚合执行,或在单个PDB上本地执行 https://docs.oracle.com/database/121/ADMIN/cdb_create.htm#ADMIN13517
创建一个或多个CDB
使用数据库配置助手(DBCA)或CREATE DATABASE SQL语句创建一个或多个CDB。无论哪种情况,都必须指定每个CDB的配置详细信息。 CDB创建后,由根和种子组成,根目录只包含Oracle维护的对象和数据结构,种子是用于克隆目的的通用种子数据库。
1 创建CDB
Oracle强烈建议使用DataBase Configuration Assistant(DBCA)来创建CDB,因为这是一种更加自动化的方法,并且当DBCA完成时,您的CDB就可以使用了。DBCA允许您在创建CDB时指定CDB中pdb的数量。 DBCA可以由Oracle Universal Installer(OUI)启动,具体取决于您选择的安装类型。您还可以在安装Oracle数据库之后的任何时候将DBCA作为独立工具启动。 您可以使用DBCA在交互模式或非交互/静默模式下创建CDB。交互模式为创建和配置CDB提供了图形界面和指导性工作流。非交互/静默模式允许您编写CDB创建脚本。通过指定命令行参数和/或响应文件,可以在非交互/静默模式下运行DBCA。 创建CDB后,可以使用DBCA将pdb插入其中并从中拔出pdb。
2 创建PDB
PDB包含用户数据。创建CDB后,您可以创建PDB,将未连接的PDB插入其中,并在必要时从中拔出PDB。您可以从CDB中拔出PDB,然后将此PDB插入另一个CDB。
2.1 创建PDB的方法
2.2 使用种子文件创建PDB
2.3 克隆已有的PDB
- 可以使用CREATE PLUGGABLE DATABASE语句从源PDB或非CDB克隆PDB。
- 此技术克隆源PDB或非CDB并将克隆插入CDB。要使用此技术,必须包含指定源的FROM子句。
- 源是复制的现有PDB或非CDB。目标PDB是源的克隆。源可以是本地CDB中的PDB、远程CDB中的PDB或非CDB。CREATE PLUGGABLE DATABASE语句将与源相关联的文件复制到新位置,并将这些文件与目标PDB相关联。
- 克隆的一个用途是用于测试。克隆使您能够创建PDB或非CDB的一个或多个克隆,并在隔离中安全地测试它们。例如,您可以在克隆的PDB上测试新的或修改过的应用程序,然后再将该应用程序用于生产PDB。
2.3.1 从本地PDB克隆
2.3.2 从远程PDB克隆
当源是远程CDB中的PDB时,必须在FROM子句中指定到远程CDB的数据库链接。数据库链接连接到远程CDB的根目录,或者连接到包含新PDB的CDB的远程源PDB
2.4 使用非CDB克隆PDB
当源是非CDB时,必须在FROM子句中指定指向非CDB的数据库链接。图38-5说明了当源是远程非CDB时,该技术如何创建新的PDB。
2.5 通过插入未插入的PDB创建PDB
这项技术可插入未插入的PDB。此技术使用描述PDB的XML元数据文件和与PDB相关联的文件将其插入CDB。 XML元数据文件指定PDB文件的位置,CREATE PLUGGABLE DATABASE语句的USING子句指定XML元数据文件