本篇文章主要介绍了" [转]Oracle 12c多租户特性详解:PDB 的创建、克隆与维护",主要涉及到方面的内容,对于Oracle感兴趣的同学可以参考一下:
转自:http://chuansong.me/n/443660447865 PDB 的创建和访问在使用 dbca 建库时,创建数据库之前,可以保存一下创建脚本,...
![[转]Oracle 12c多租户特性详解:PDB 的创建、克隆与维护](/imagecaealtourcom/Article/image/20160826/20160826184212_5230.jpg)
而通过 v$datafile 视图可以查询到来自控制文件的信息,2号和4号文件是 PDBSEED 中的两个文件:
![[转]Oracle 12c多租户特性详解:PDB 的创建、克隆与维护](/imagecaealtourcom/Article/image/20160826/20160826184212_7105.jpg)
从数据字典中隐藏了文件号,就彻底屏蔽了对于种子数据库的操作,该 PDB 就只能以只读的方式打开。
在日志中可以看到,数据库创建完成之前,pdb$seed 可以被打开和关闭,但是创建完成,删除文件号之后,则被保护了起来:
![[转]Oracle 12c多租户特性详解:PDB 的创建、克隆与维护](/imagecaealtourcom/Article/image/20160826/20160826184212_9292.jpg)
在数据库启动过程中,如尝试 Offline 的操作,就会收到2号文件不存在的提示(虽然在 v$datafile 中可以看到这个文件):
![[转]Oracle 12c多租户特性详解:PDB 的创建、克隆与维护](/imagecaealtourcom/Article/image/20160826/20160826184213_1011.jpg)
CDB 与 PDB 的起停管理
首先 PDB 的访问依赖于 CDB,必须启动 CDB 之后,才能够对 PDB 进行操作。当 CDB 打开访问时,PDB 处于 Mount 状态,需要进一步的操作打开 PDB。下图描述了在 PDB 的模式下,数据库的启动过程和步骤:
![[转]Oracle 12c多租户特性详解:PDB 的创建、克隆与维护](/imagecaealtourcom/Article/image/20160826/20160826184214_9292.jpg)
接下来通过测试来验证一下这个过程。以下首先启动 CDB 到 NOMOUNT 状态,可以看到 v$pdbs 视图是不能访问任何 PDB 信息的:
![[转]Oracle 12c多租户特性详解:PDB 的创建、克隆与维护](/imagecaealtourcom/Article/image/20160826/20160826184218_2417.jpg)
当 MOUNT 数据库之后,PDB 随之被 MOUNT,以下查询显示当前数据库中包含三个 PDB,一个种子库,两个用户库: