oracle 12c 数据库cdb用户创建与表空间分配,Oracle 12c 数据库CDB用户创建与表空间分配的问题...

Oracle12c中,增加了可插接数据库的概念,即PDB,允许一个数据库容器(CDB)承载多个可插拔数据库(PDB)。CDB全称为ContainerDatabase,中文翻译为数据库容器,

Oracle12c中,增加了可插接数据库的概念,即PDB,允许一个数据库容器(CDB)承载多个可插

拔数据库(PDB)。CDB全称为ContainerDatabase,中文翻译为数据库容器,PDB全称为Plugga

bleDatabase,即可插拔数据库。在ORACLE 12C之前,实例与数据库是一对一或多对一关系

(RAC):即一个实例只能与一个数据库相关联,数据库可以被多个实例所加载。而实例与数据库

不可能是一对多的关系。当进入ORACLE 12C后,实例与数据库可以是一对多的关系。下面是官方

文档关于CDB与PDB的关系图。

20150206210390.html

对于PDB确实给程序员带来了不少好处,不过这也给管理者带来了一些不同。首先,容器数据库创建

新用户并分配表空间时必须在没有PDB的情况下进行或PDB与CDB有相同的表空间的时候进行,否则

会报错。如果是在PDB与CDB有相同表空间的情况下给CDB用户分配表空间,则会分配CDB的表空间

给用户PDB的表空间并不受影响。而且,CDB用户必须以‘C##’为开头,否则创建不了,但是,我在网

上看到了一篇文章,地址,我按照他的方法去创建

了一下,确实创建成功了,同时也给他赋了各种权限,但是在Oracle Enterprise Manager下我看不见我

20150206210390.html

创建用户c##admin,并未该用户赋予了dba权限,连接。这是在没有PDB的情况下创建用户

“C##ADMIN”并分配”USERS‘表空间。我们再次以system身份连接数据库,然后在容器数

据库(CDB)中创建表空间test,注意,这时插接式数据库(PDB)中没有test这个表空间,

然后在容器数据库(CDB)创建新的用户c##test并分配test表空间给它作为他的默认表空间

。由于在PDBORCL中并没有表空间,所以这里报错了。如下图所示:

20150206210390.html

----切换到PDB “PDBORCL”

SQL> alter sessionset container = pdborcl;

会话已更改。

SQL> createtablespace test    --创建表空间test

2 datafile 'f:\oracledata\test.dbf'

3  size1m autoextend on;

表空间已创建。

--由于现在不论是在CDB好是在PDB中都有了表空间test了,所以创建用户并分配表空

间成功了。

SQL> createuser c##test

2 identified by test

3 default tablespace test

4 temporary tablespace temp;

用户已创建。

SQL>

20150206210390.html

Oracle12c中,增加了可插接数据库的概念,,即PDB,允许一个数据库容器(CDB)承载多个可插拔数据库(PDB)。CDB全称为ContainerDatabase,中文翻译为数据库容器,PDB全称为PluggableDatabase,即可插拔数据库。在ORACLE 12C之前,实例与数据库是一对一或多对一关系(RAC):即一个实例只能与一个数据库相关联,数据库可以被多个实例所加载。而实例与数据库不可能是一对多的关系。当进入ORACLE 12C后,实例与数据库可以是一对多的关系。下面是官方文档关于CDB与PDB的关系图。

对于PDB确实给程序员带来了不少好处,不过这也给管理者带来了一些不同。

首先,容器数据库创建新用户并分配表空间时必须在没有PDB的情况下进行或PDB与CDB有相同的表空间的时候进行,否则会报错。如果是在PDB与CDB有相同表空间的情况下给CDB用户分配表空间,则会分配CDB的表空间给用户PDB的表空间并不受影响。而且,CDB用户必须以‘C##’为开头,否则创建不了,但是,我在网上看到了一篇文章,地址,我按照他的方法去创建了一下,确实创建成功了,同时也给他赋了各种权限,但是在Oracle

Enterprise Manager

创建用户c##admin,并未该用户赋予了dba权限,连接。

这是在没有PDB的情况下创建用户“C##ADMIN”并分配”USERS‘表空间。

我们再次以system身份连接数据库,然后在容器数据库(CDB)中创建表空间test,注意,这时插接式数据库(PDB)中没有test这个表空间,然后在容器数据库(CDB)创建新的用户c##test并分配test表空间给它作为他的默认表空间。由于在PDBORCL中并没有表空间,所以这里报错了。如下图所示:

----切换到PDB “PDBORCL”

SQL> alter sessionset container = pdborcl;

会话已更改。

SQL> createtablespace test    --创建表空间test

2 datafile 'f:\oracledata\test.dbf'

3  size1m autoextend on;

表空间已创建。

--由于现在不论是在CDB好是在PDB中都有了表空间test了,所以创建用户并分配表空间成功了。

SQL> createuser c##test

2 identified by test

3 default tablespace test

4 temporary tablespace temp;

用户已创建。

SQL>

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值