目录
项目场景
现场同事求助说:有个刚刚部署在Windows上的Oracle11gR2数据库(单机单实例),使用PLSQL工具连接不上。帮忙查看后,发现未装Oracle client,指导其安装完Oracle客户端后,连接依然报错,错误是:ORA-12514。
问题分析
1、检查监听状态
cmd窗口执行lsnrctl status命令,发现监听根本没有启动。lsnrctl start启动监听后,继续尝试连接,发现依旧是报错ORA-12514。
2、再次执行lsnrctl status命令检查监听状态,发现监听注册的实例与连接的实例并不是同一个。和现场同事沟通后,他们也不知道这个注册的实例是什么。
3、于是进入sqlplus,执行 select instance_name from v$instance,确认要连接的目标实例存在。
4、根据上面的信息,判断这台数据库在配置监听的时候出现了问题,可能是部署者没配置好环境变量。于是手动去修改了listener.ora文件,将目标实例新增到listener.ora配置文件中。
5、再次尝试连接,发现这次报错信息变了:ORA-28547。
6、几番尝试后,发现原来是listener.ora文件格式修改错了,多加了个括号,导致了ORA-28547。删除括号后,可以正常连接。
问题总结
1、发生ORA-12514时,优先查看数据库的监听是否启动、目标实例是否注册监听。
2、发生ORA-28547时,优先查看listener.ora文件有没有配置错误。