oracle12c创建用户和表空间出现的问题
来源:互联网 发布:佛教通史知无涯 编辑:程序博客网 时间:2024/04/30 12:56
Oracle12c 中,增加了可插接数据库的概念,即PDB,允许一个数据库容器(CDB)承载多个可插拔数据库(PDB)。CDB全称为 ContainerDatabase,中文翻译为数据库容器,PDB全称为PluggableDatabase,即可插拔数据库。在ORACLE 12C之前,实例与数据库是一对一或多对一关系(RAC):即一个实例只能与一个数据库相关联,数据库可以被多个实例所加载。而实例与数据库不可能是一对 多的关系。当进入ORACLE 12C后,实例与数据库可以是一对多的关系。下面是官方文档关于CDB与PDB的关系图。
首先,容器数据库创建新用户并分配表空间时必须在没有PDB的情况下进行或PDB与CDB有相同的表空间的时候进行,否则会报错。如果是在PDB与CDB 有相同表空间的情况下给CDB用户分配表空间,则分配CDB的表空间给用户PDB的表空间并不受影响。而且,CDB用户必须以‘C##’为开头,否则创 建不了。如下:
1.这是在没有PDB的情况下创建用户“C##ukprod”并分配”USERS“(系统自带的表空间),如果不以C##开头的用户名就会报错。
2.在CDB中创建表空间TBLSPACE_OTH,而PDB中不存在该表空间,然后创建用户默认表空间为TBLSPACE_OTH将报错
3.在PDB中创建表空间TBLSPACE_OTH,注意文件名不能和CDB中的一样(在不同目录也没关系)
3.1 show con_name --查看当前容器
3.2 alter session set container=UKPDB1; --转换容器到PDB
alter session set container=CDB$ROOT; --转换容器到CDB
通过查询可知: “C##test” 的默认表空间是容器数据库 “CDB” 的, 跟插接式数据库 “PDB” 一点关系都没有。如果硬要说有关系的话就是 ” 如果 PDB中没有表空间 ’TBLSPACE_OTH‘ 的话 CDB 中的用户就不能以 ’TBLSPACE_OTH‘ 表空间做为默认表空间 ” 。
oracle推荐是把应用放在PDB中的,然而PDB中创建的用户你会发现按照以前11g的方法是连接不上的,如下图:
这是为什么呢?
原因是要写成conn test11/test11@UKPDB1
这个UKPDB1是tnsName, 如下图:
注意这个SERVER_NAME,并不是UKPDB1,可以用lsnrctl -status查看,我在本地客户端按照11g的惯例写了SERVER_NAME = UKPDB1;结果怎么也连不上,在本地注意把PDB的监听也配上。
。
转自:点击打开链接
- oracle12c创建用户和表空间出现的问题
- Oracle12c安装时的问题:创建TableSpace和用户的时候与11g的代码命令一样
- Oracle12c中scott用户的创建方法
- Oracle创建表空间和表空间用户的步骤
- 创建表空间和用户
- 创建表空间和用户
- oracle12c创建用户
- 【Oracle】tablespace创建表空间,临时表空间,创建用户和指定该用户的表空间临时表空间
- Oracle创建用户表空间和用户
- oralce创建表空间和创建用户
- oracle创建表空间和用户,删除表空间、用户
- Oracle表空间和用户的创建 代码示例
- linux下oracle的启动和创建表空间用户
- oracle创建表空间和用户的sql语句
- ORACLE创建数据库表空间和用户的过程
- ORACLE创建表空间和用户的基础东西
- Oracle 用户和表空间的创建与删除
- oracle学习用户和表空间的创建,授权。
- mysql 安装 最后一步 execute 未响应
- ObjectARX 写扩展数据 和 查看扩展数据
- linux debian 下获取当Home路径的方法
- 下拉刷新自定义的接口和方法
- 全新的适配方式AutoLayout
- oracle12c创建用户和表空间出现的问题
- 解决git提交敏感信息(回退git版本库到某一个commit)
- Git与GitHub使用
- 最广为使用的Java库
- jvisualvm 监控JVM内存的工具
- mysql查看所有存储过程
- 十四章上机2
- Windows7_设置VPN
- Tablayout的简单应用