oracle12c创建用户和表空间出现的问题
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创建用户指定表空间
--1.创建临时空间 create temporary tablespace zyj_temp tempfile 'D:\app2\user\virtual\oradata\orcl\zyj_temp ...
- oracle常用SQL——创建用户、表空间、授权(12C)
一.查询 查询用户所属 表空间 select username,default_tablespace from dba_users where username='xxx' 查询表空间情况 SELEC ...
- ORACLE创建用户,表空间,并且导出数据,导出表
1.创建用户: create user toptea2 identified by "用户名" 2.给用户授权 grant create session to 用户名; grant ...
- oracle创建用户、表空间、临时表空间、分配权限步骤详解
首先登陆管理员账号,或者有DBA权限的用户,接下来依次: --查询所有用户select * from dba_users;--创建新用户create user gpmgt identified by ...
- Oracle创建用户、表空间并设置权限
代码: //dba账户登录 sqlplus 请输入用户名:dpp_data as sysdba 请输入口令:dpp_data //创建账号 create user techrpt_data ident ...
- 用sqlplus为oracle创建用户和表空间<转>
用Oracle10g自带的企业管理器或PL/SQL图形化的方法创建表空间和用户以及分配权限是相对比较简单的,本文要介绍的是另一种方法,使用Oracle 9i所带的命令行工具:SQLPLUS来创建表空间 ...
- oracle 备份和还原还有创建用户、表空间、授权
--找到存放dbf文件的路径--E:\oracle\product\10.2.0\oradata\orcl--可以通过此语句进行查询select * from v$datafile; --创建表空间c ...
- 用sqlplus为oracle创建用户和表空间
用Oracle自带的企业管理器或PL/SQL图形化的方法创建表空间和用户以及分配权限是相对比较简单的, 本文要介绍的是另一种方法就是使用Oracle所带的命令行工具SQLPLUS来创建表空间. 打开S ...
- oracle 之创建用户,表空间,授权,修改用户密码
1.创建表空间 create tablespace ilinkcargoagent logging datafile 'D:\app\Administrator\oradata\ilinkcargoa ...
随机推荐
- Python的sys.argv使用说明 通过终端写入环境变量
刚开始使用这个参数的时候,很不明白其含义.网上搜索很多都是贴的官网上面的一则实例,说看懂,就明白.可是,我看不懂.现在在回头看这个参数使用,并不是很麻烦. 举几个小例子就明白了. 创建一个脚本,内容如 ...
- Linux Shell sort排序常用命令(转载)
转载自:http://blog.csdn.net/monkeyduck/article/details/10097829 1 sort的工作原理 sort将文件的每一行作为一个单位,相互比较,比较原则 ...
- Python中的画图初体验
学到<父与子编程之旅>的16章了,跟书上的例子进行学习,学会了画圆,我又找到了画线的方法,于是就可以在screen上画日本国旗了: 手动画的不好看,也可以不手动画,直接画线: 当然也可以直 ...
- ios NSString format 保留小数点 float double
self.orderCost.text = [NSStringstringWithFormat:@"%.1f元",self.order.cost.floatValue]; %.1f ...
- phalcon分页的处理
由于项目是用phalcon做的,主要是处理api,也做些简单的web页面. 有一个页面是显示日志的,结果后来日志达到几万条后php内存爆了,查了一下代码, 居然是直接读出所有数据库数据,使用的\Pha ...
- if的另一个实现思路
在一些场景中需要根据根据一个传入的额值来做不同的处理,而且if有很多层,此时如果一直写if代码就会雍容.一种比较好的方法就是写一个map列出与if对应的情况,然后map的value就能放一些方法或者其 ...
- laravel 连接mongodb
In this article we will see how to use MongoDB with Laravel (PHP framework). So first we need to ins ...
- 【WPF】MVVM动态修改Bingding的另一种思路——用Style样式
问题场景: 界面上有个ListBox控件,它的内容Item绑定了一个列表,即 ItemsSource =”{Binding StudentList}”.这个StudentList列表在该界面View对 ...
- Extjs 弹出下拉Grid
/** * 系统通用下拉选择Gird */ Ext.define("Common.picker.GridPicker", { extend: "Ext.form.fiel ...
- Linux下DedeCMS详细安全设置
经常会听到使用dedecms的站长抱怨,网站又被挂马了,dedecms真的很不安全.dedecms可能存在某些漏洞这不假,但主要责任真的是dedecms吗?我们知道,一个黑客想上传木马,首先得可以找到 ...