oracle12c解决plsql登录CDB和PDB问题
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,今天闲来无事,在win10上安装了oracle12c,想着平时可以操作操作,在安装过程中有一个创建为容器数据库的勾选,虽然不明白是什么意思,我还是勾选了。后来在使用plsql登录的时候,发现没有sco
千家信息网最后更新 2026年11月03日oracle12c解决plsql登录CDB和PDB问题今天闲来无事,在win10上安装了oracle12c,想着平时可以操作操作,在安装过程中有一个创建为容器数据库的勾选,虽然不明白是什么意思,我还是勾选了。
后来在使用plsql登录的时候,发现没有scott用户,what?难道是12c取消了scott用户吗?网上转了一圈发现,原来12c引入了CDB和PDB的概念,具体内容可以自行去了解一下,这里就再详解了。现在的问题是,我正常连接的数据库是CDB,但是scott用户又是在PDB下的,我也不想去在CDB 下重新新建scott用户和相关表,所以试着去了解了下怎么用plsql直接登录到PDB,网上的方法基本是在sqlplus下切换CDB与PDB,我试了网上的方法:
1.在tns文件里添加
PDBORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = pdborcl.microdone.cn)
)
)
2.去sqlplus 执行
后来在使用plsql登录的时候,发现没有scott用户,what?难道是12c取消了scott用户吗?网上转了一圈发现,原来12c引入了CDB和PDB的概念,具体内容可以自行去了解一下,这里就再详解了。现在的问题是,我正常连接的数据库是CDB,但是scott用户又是在PDB下的,我也不想去在CDB 下重新新建scott用户和相关表,所以试着去了解了下怎么用plsql直接登录到PDB,网上的方法基本是在sqlplus下切换CDB与PDB,我试了网上的方法:
1.在tns文件里添加
PDBORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = pdborcl.microdone.cn)
)
)
2.去sqlplus 执行
alter session set container = PDBORCL;
然后sqlplus登录就可以查到scott用户了,但是我们日常使用肯定是plsql用的比较多,plsql登录会报错:ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务3.又按照网上说的方法谢了一个触发器,让pdb自动开启:
CREATE OR REPLACE TRIGGER open_all_pdbs AFTER STARTUP ON DATABASE BEGIN EXECUTE IMMEDIATE 'alter pluggable database all open'; END open_all_pdbs;
登录还是报12514,好吧,先来看看这个报错能不能解决。
于是cmd窗口查看监听状态,lsnrctl status
结果是果然没有pdborcl这个监听,怎么办?继续找答案,最后才发现原来我在安装数据库的时候,全局数据库名使用的的是数据库名+域名的形式,比如我的是orcl.microdone.cn, 但是我添加的pdborcl却使用的是pdborcl,于是也改成pdborcl.microdone.cn,最后用plsql登录,perfect,完美登录,查询scott用户,查到了!!
接着我把触发器也删了,登录pdb也是没有问题的,说明直接原因还是tns配置的问题。
总结:我是在 http://www.itpub.net/thread-1847024-1-1.html 这篇文章中得到启发的,个人认为最终的原因还是在建实例的时候,CDB的global db name使用的是db name+domain的形式,而PDB使用的global db name是db name,导致在添加tns配置的时候也是只使用了db name,应该要加上domain。
但是文章中说的要配置listener.ora文件,我没有配置,还是原有的配置,这里到底需不需要配置,不是太明白,往后再研究。
SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = CLRExtProc) (ORACLE_HOME = C:\app\oracle12c\product\12.1.0\dbhome_1) (PROGRAM = extproc) (ENVS = "EXTPROC_DLLS=ONLY:C:\app\oracle12c\product\12.1.0\dbhome_1\bin\oraclr12.dll") ) )LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) )
登录
用户
配置
数据
数据库
还是
时候
问题
方法
监听
原因
形式
文件
是在
触发器
闲来无事
个人
全局
内容
又是
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
耶加雪菲
互联网科技工作委员会副主任毛军
高科技互联网
互联网巨头科技公司
互联网 科技
奇士达互联网科技
互联网科技的未来发展
深圳艾佳互联网科技
科技伦理 互联网公司
成都互联网科技公司100强
汽车互联网创新科技园
互联网对科技的发展
中国航天科技大学国际工业互联网
工业互联网山东科技大学
领航科技大厦互联网公司
富国互联网科技002692
福仕德教育科技互联网
银川新华互联网科技学校原画
互联网科技和医药行业
北京品多多互联网科技有限公司
上海喔噻互联网科技
互联网科技论坛
互联网科技美容
华中科技有哪些互联网大佬
承德科技产业互联网发展
彤创互联网科技有限公司
中国科技创新与世界互联网大会
互联网公司高科技产品
广州千川互联网科技有限公司
数字互联网科技有限公司