oracle创建用户需要输入C##

本文介绍了Oracle12c中CDB和PDB的概念,以及在管理过程中遇到的问题,如创建用户时CDB与PDB的区别。提供了解决方法,包括检查当前数据库模式、临时设置会话属性和修改初始化参数文件。
摘要由CSDN通过智能技术生成

oracle数据库概念

ORACLE数据库系统在版本12c之后引入了Container Database(CDB)和Pluggable Database(PDB)的概念。这种体系结构设计旨在提供一种灵活、可伸缩且易于管理的解决方案。

  • CDB(Container Database):容器数据库是包含一个或多个可插拔数据库(PDB)的数据库。CDB为PDB提供了数据库管理功能,如内存和资源管理。每个PDB都是独立的,拥有自己的数据库实例,可以被认为是一个传统意义上的Oracle数据库。

  • PDB(Pluggable Database):可插拔数据库是CDB中的一个独立数据库实例,它可以在不关闭CDB的情况下创建、修改或删除。PDB允许用户在同一CDB中同时拥有多个独立的数据库实例,这些实例可以运行不同版本的Oracle数据库,或者用于隔离不同的应用程序。

问题原因

两种数据库创建用户的方式不一样 CDB需要在前面加上C## 但PDB不用 ,因此,在执行数据泵迁移等问题时可能会出现问题

解决方法

解决办法1

查询当前数据库处于那种模式

show con_name

结果是

CDB$ROOT

在CDB数据库下面输入就可以不用C##了 如果没有成功可以重新启动下数据库试试

alter session set "_oracle_script"=true;

解决方法2

这种方式好像只在当前有效,退出了重新开启好像就会改回来,不建议使用

SQL> select sys_context ('USERENV', 'CON_NAME') from dual; 
 
SYS_CONTEXT('USERENV','CON_NAME')
--------------------------------------------------------------------------------
CDB$ROOT
 
SQL> set pagesize 200
SQL> set linesize 200
SQL> select con_id,dbid,NAME,OPEN_MODE from v$pdbs;

CON_ID DBID NAME

---------- ---------- ----------------------------------------------------------------------------------------------------

                      2 2760955567 PDB$SEED   READ ONLY

                      3 2714456025 PDB1    

SQL> alter session set container=PDB1;
 
Session altered.
 
SQL> select sys_context ('USERENV', 'CON_NAME') from dual;
 
SYS_CONTEXT('USERENV','CON_NAME')
---------------------------------------------------------------------------------
PDB1
 
SQL> create user pstest identified by pstest;
 
User created.
 
SQL> 

解决方法3

更改这个文件里面的内容 db_后面是你的实例名,会根据自己的情况查找 静默安装一般会在这个位置  

vi /etc/init.d/oracledb_ORCLCDB-19c

将里面的CREATE_AS_CDB改为False

这种方法一般在静默安装时进行更改,如果你安装好了,也可以尝试一下,因为我的是在安装时做的 不知道这样子是否能成功

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值