Container Database(容器数据库,CDB)与Pluggabble Database(可插拔式数据库,PDB)是12c中一个标志性的新特性。下面,我们先来看一下CDB的创建。关于CBD新特性的管理, 我会在后面的博客中进行说明。
创建数据库,我们首先想到的就是dbca了,下面,我们来执行dbca命令,打开数据库创建助手来创建数据库。
我习惯选用高级模式进行创建,当然了原理是一样的。我们继续。
这里,我们注意一下。如果要创建CDB,那么我们把“Create As Container Database”这个选项选择上。下面的两项是说,我们创建CDB的时候,是否连同PDB也一起创建。这里,我选择了“Create an Empty Container Database”。PDB的创建,我会在后续进行说明。
配置EM,指定端口。这里,我们使用默认的即可。当然了,我们也可以指定为1158。
这里,我们可以看到,dbsnmp与sysman用户的密码设置没有了。用户是否还有,我们后续再进行验证。
如果我们预先没有创建监听,我们可以在这里进行创建。相比以前,友好了很多。
这里,我们把生成创建数据库的脚本选项选择上。稍后我们来看一下这段脚本所做了那些事情。
开始创建数据库了。
创建完成。
下面,我们来看一下创建数据库所生成的数据文件。
- oracle@solaris:~$ cd /u01/app/oracle/oradata/cdb12/
- oracle@solaris:/u01/app/oracle/oradata/cdb12$ ls
- control01.ctl redo01.log redo03.log system01.dbf undotbs01.dbf
- pdbseed redo02.log sysaux01.dbf temp01.dbf users01.dbf
- oracle@solaris:/u01/app/oracle/oradata/cdb12$
这里突出的一个地方是有一个pdbseed目录的生成,我们再到这个目录下看一下所生成的文件。
- oracle@solaris:/u01/app/oracle/oradata/cdb12$ cd pdbseed/
- oracle@solaris:/u01/app/oracle/oradata/cdb12/pdbseed$ ls
- pdbseed_temp012014-09-07_05-34-19-AM.dbf
- sysaux01.dbf
- system01.dbf
- oracle@solaris:/u01/app/oracle/oradata/cdb12/pdbseed$
我们发现,这个目录下面同样也有system与sysaux数据文件。这些数据文件就是CDB下,PDB的数据文件。
尽管我们刚才创建的时候没有选择要进行创建的PDB,但是它一样生成了一个。毫无疑问,根据推理,我们也可以想到,它就是一个默认的PDB了。没错,它确实是一个默认的pdb。
在CDB中,会有一个默认的PDB生成,它作为用户创建一系列PDB的一个模板。那么,这个名字是什么呢?当然了,我们也可以查看,如下:
- oracle@solaris:~$ sqlplus / as sysdba
- SQL*Plus: Release 12.1.0.2.0 Production on Sun Sep 7 06:02:35 2014
- Copyright (c) 1982, 2014, Oracle. All rights reserved.
- Connected to:
- Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
- With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
- SQL> select name,open_mode
- 2 from v$pdbs
- 3 /
- NAME OPEN_MODE
- ------------------------------ ----------
- PDB$SEED READ ONLY
- SQL>
通过查询我们发现,这个默认的pdb的名称为PDB$SEED,而且是以Read Only的方式打开的。
现在,我们来小结一下。
创建一个CDB,会有一个默认的PDB生成,它的名称是PDB$SEED,而且是以只读的形式打开的。那么,刚才的那个pdbseed目录下的数据文件我们就不难理解了,它就是pdb$seed的数据文件。
转载本站内容时,请务必注明来自W3xue,违者必究。