Windows平台下解决Oracle12c使用PDB数据库创建SDE的问题
Oracle 12C中引入了CDB与PDB的新特性,在ORACLE 12C数据库引入的多租用户环境(Multitenant Environment)中,允许一个数据库容器(CDB)承载多个可插拔数据库(PDB)。CDB全称为Container Database,中文翻译为数据库容器,PDB全称为Pluggable Database,即可插拔数据库。在ORACLE 12C之前,实例与数据库是一对一或多对一关系(RAC):即一个实例只能与一个数据库相关联,数据库可以被多个实例所加载。而实例与数据库不可能是一对多的关系。当进入ORACLE 12C后,实例与数据库可以是一对多的关系。具体的在这个博客里有做详细介绍,不再赘述。
(http://www.cnblogs.com/kerrycode/p/3386917.html)。
在安装Oracle12C过程中,PDB数据库在默认情况下会被勾选创建,如下图所示:
这个时候一个PDB就创建了。但是在我们像以往一样直连ArcSDE就会存在如下错误:ORA-65096:公用用户名或角色名无效。
本人也是初学,查了这个错误,然而这个错误这是由于PDB数据库不同于CDB数据库的创建用户方式造成的,怎么解决这个问题呢?还是慢慢从头开始喽。
测试环境:Windows server 2012r2、 oracle 12.1.0、Oracle12Cclient(32)、desktop10.3
1. 首先创建一个PDB可插拔数据库,创建数据库之前首先要指定PDB数据库文件所存放的路径,数据库名称在这里给定为pdbsde,具体如下:
CREATE PLUGGABLE DATABASE pdbsde ADMIN USERsdeadmin IDENTIFIED BY sdeadmin
STORAGE (MAXSIZE 2G MAX_SHARED_TEMP_SIZE 100M)DEFAULT TABLESPACE pdbsde DATAFILE'C:\app\Administrator\oradata\orcl\pdbsde\pdbsde.dbf' SIZE 500M AUTOEXTEND ON
PATH_PREFIX ='C:\app\Administrator\oradata\orcl\pdbsde\'
FILE_NAME_CONVERT =('C:\app\Administrator\oradata\orcl\pdbseed\',
'C:\app\Administrator\oradata\orcl\pdbsde\');
2. 创建好PDB之后,我们来查看一下PDB的状态信息,如下所示,新创建的PDBSDE是Mounted状态,我们需要手动打开。
3. 然后查看一下数据文件的变化,很显然PDBSDE已经被创建。
4. 用SYS用户测试PDBSDE数据库的连通情况,正常连接!
5. 接下来就可以快乐的创建SDE了吗?NO,我们还需要创建表空间,这一步是必要的,否则在创建SDE的时候仍然会报错要求我们创建表空间的。
CREATE SMALLFILE TABLESPACE SDE DATAFILE
'C:\app\Administrator\oradata\orcl\pdbsde\sde.dbf'SIZE 1000M LOGGING EXTENT MANAGEMENT;
6. 表空间创建好了,我们可以创建SDE了。如下图所示:
创建成功,这样就实现了PDB数据库创建SDE喽。
当然呢,在后续的学习过程中还是要系统的掌握PDB和CDB数据库之间的关系和区别,否则遇到问题还是很容易陷入困境,同时也感谢大牛们给我的指导。
LINIX下PDB创建SDE,请参照李老师的博客
http://blog.csdn.net/linghe301/article/details/19337351