- 环境:
操作系统:Windows Server2008 R2 X64
Oracle版本:12c
如何安装?
-- oracle 12c在oracle linux 6.6 x64上的安装
-- Windows x64位下完美安装winx64_oracle_12c_database
如何使用DataBase Cofiguration Assistant 创建数据库?
-- oracle12c dbca方式创建数据库实例(多图)
如何使用PL/SQL Developer连接?
-- PL/SQL Developer连接到Oracle 12c
备注:上边PL/SQL Developer连接oracl 12c方式,我并没有成功。
初次安装上oracle12c,发现与之前使用的oracle9g版本还是有点区别。
- 从官网上获取到的信息是,Oracle12c新出的概念:
1、oracle12c中增加了可插拔数据库的概念,即PDB的概念,允许一个数据库容器(CDB)承载多个可插拔数据库(PDB)。
CDB全称Container Database,中文翻译为数据库容器;
PDB全称Pluggable Database,中文翻译为可插拔数据库。
2、在Oracle12c之前,实例与数据是一对一或者多对一的关系(RAC):即一个数据实例只能与一个数据库相关联,数据库可以被多个实例所加载。
但是,实例与数据库不可能是一对多的关系。
3、进入Oracle12c后,实例与数据库可以是一对多的关系。
下图是官网提供的CDB与PDB的关系图:
上边新的概念带来了什么好处?
对于pdb确实给程序员带来了不少好处:不过这也给管理员带来了一些不同。
首先,容器数据库创建新用户并分配表空间时,可以在以下两种情况下进行:
1、必须在没有PDB的情况下;
2、PDB与CDB有相同的表空间的情况下。
否则,会失败。
如果是PDB与CDB有相同表空间的情况下给CDB用户分配表空间,则会分配CDB的表空间给用户,PDB的表空间并不受影响;
而且,CDB用户必须以‘c##’为开头,否则创建用户失败。
参考:
Oracle 12c 数据库CDB用户创建与表空间分配的问题
oracle官网文档:http://docs.oracle.com/database/121/index.htm
CDB、PDB、PDB$SEED与SqlServer中对象对应:
- 1、CDB与PDB可以实现一个CDB对应多个PDB,这和sqlserver中的单个实例对应多个数据库架构是有点相似的思路。
- 2、PDB$SEED可以看成是master、msdb等系统数据库;
- 3、PDBS可以看成用户创建的数据库。
- 4、可插拔的概念与SqlServer中的用户数据库分离、附加有相似的思路。
CDB数据库组件:
1、ROOT组件
ROOT又叫CDB$ROOT,存储着Oracle提供的元数据和Common User,元数据的一个例子是ORACLE提供的PL/SQL包的源代码,Common User是指在每个容器都存在的用户。
2、SEED组件
SEED又叫PDB$SEED,这个是你创建PDBS数据库的模板,你不能在SEED中添加或修改一个对象。一个CDB中有且只能有一个SEED。这个类似SQLSERVER中的model数据库。
3、PDBS
CDB中可以有一个或者多个Pdbs,PDBS向后兼容,可以像以前在数据库中那样操作PDBS,这里只大多数操作。
这些组件中的每一个都可以被称为一个容器。因此,ROOT(根)是一个容器,SEED(种子)是一个容器,每个PDB是一个容器。每个容器在CDB中都有一个独一无二的ID和名称。
参考:ORACLE 12C新特性——CDB与PDB
- 创建新用户,并分配默认表空间,分配权限