关于windows安装Oracle 12c后出现的 ORA-65096、ORA-65048、 ORA-00959

关于windows安装Oracle 12c后出现的 ORA-65096、ORA-65048、 ORA-00959

2020/6/4官网上下载Oracle 12zip包。安装后做测试了解到了一个cdb和pdb的概念,在这里记录一下。希望能帮到<像我这样的人>。

一、 这里是关于cdb和pdb的相关概念

CDB与PDB是Oracle 12C引入的新特性,在ORACLE 12C数据库引入的多租用户环境(Multitenant Environment)中,允许一个数据库容器(CDB)承载多个可插拔数据库(PDB)。CDB全称为ContainerDatabase,中文翻译为数据库容器,PDB全称为Pluggable Database,即可插拔数据库。在ORACLE 12C之前,实例与数据库是一对一或多对一关系(RAC):即一个实例只能与一个数据库相关联,数据库可以被多个实例所加载。而实例与数据库不可能是一对多的关系。当进入ORACLE 12C后,实例与数据库可以是一对多的关系。

二、想要了解cdb和pdb的深入概念小伙伴们可以自行查找。下面直接进入问题。

oracle 的安装过程这里就不多赘述了。我在安装好Oracle后使用navicat连接了Oracle。在创建表空间是还是非常顺利的。但是当我在创建用户时出现了两个错误。

1.在填写好用户的基本信息后进行保存,会报:

ORA-65096: 公用用户名或角色名无效
这里百度了一波,知道了充cdb和pdb的概念。查询到是说cdb创建用户是用户名前面必须要加上C##或c##,不然会返回一个错误。

2.当我将用户名加上C##前缀后又报了一个:ORA-65048:在可插入数据库PDBORCL中处理当前DDL语句时出错 ORA-00959:表空间‘LOCL_DATA’不存在

这里呢其实还是和cdb有关。
首先我查询了我现在的session是cdb,这就导致了我在cdb创建了表空间但是pdb上面并没有这个表空间。由于cdb与pdb表空间结构不同,所以就出现了ora-00959的错误。
在这里插入图片描述
之后我有查看了此时数据库的pdb。
在这里插入图片描述
可以看到里面有个ORCLPDB,于是我就用navicat重新连接了一下这个可插拔数据库。具体连接配置如下:
在这里插入图片描述
可以看到我修改了服务名。从默认的ORCL改成了ORCLPDB。之后的创建表空间和用户就没有问题了。
用户名前面也不需要加C##了。

如果用的是sqlplus进行测试的,那就直接修改session就行了。
SQL> alter session set container=ORCLPDB;

在这里插入图片描述

三、关于Oracle12c 重启后。。。

Oracle 12c 重启后只会重启cdb,其余所有的pdb都会进入mounted状态。这个时候客户端是无法连接这个数据库的。所以们还需要重新启动相应的pdb数据库。
SQL> sqlplus / as sysdba
在这里插入图片描述
SQL> select name, pdb from v$services; //查看pdb
在这里插入图片描述
SQL> alter pluggable database orclpdb open; //启动相应pdb(orclpdb是我的pdb的名称)
在这里插入图片描述
当然,你也可以使用触发器进行自启动。我这里没有进行测试,就不把具体的方法写在上面了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值