安装/升级Oracle遇到ORA-12514问题
程序员文章站
2024-01-23 08:34:52
...
问题原因
前几天升级Oracle数据库,从11.2.0.1升级至11.2.0.4,安装完成后,打开PL/SQL,显示ORA-12514,如图:
问题阐述
ORA-12514:监听程序当前无法识别链接描述符中请求的服务,简单的来说就是Oracle数据库的监听器配置有问题。
解决方案
- 打开cmd命令,输入tnsping orcl ,正常情况下是这样显示的:
下面会显示监听器配置文件的路径及配置信息。如果不能出现监听器信息,可以输人lsnrctl status 命令查看监听器状态:
- 根据上个图片显示的监听程序参数文件地址:
找到这个文件,打开。然后再打开net manger:
打开:
Net Manager里会显示出监听器的信息,对比着listener.ora文件中的信息,确保有一个监听器是相同的。
如果没有相同的,在listener.ora文件的LISTENER代码块里增加一个监听器,使之与Net Manager监听器里的一致。
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = LOCALHOST)(PORT = 1521))
)
)
- 在listener.ora文件目录下,还有一个tnsnames.ora文件,这个文件也要做修改:
细心的朋友可能会发现,这个ORCL的代码块里的信息,正是命令行输入tnsping orcl命令显示出来的信息,也是要和listener.ora与Net Manager 的监听器配置相同。
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = LOCALHOST)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
- 改完以后,可以在命令行里重新启动一下监听器,输入:lsnrctl stop(关闭监听器),lsnrctl start(启动监听器),检查一下问题是否解决了。如果还没有,再试试下面的方法。
其他问题检查
1.检查一下电脑的环境变量,右键此电脑–属性–高级系统设置–环境变量。这里注意一下:
- 如果你是升级Oracle : 找到 path,查看
这个需要改成升级后的路径。 - 若是安装Oracle,也要确认此路径是否和你当前安装Oracle路径的相同。
2.新增一个系统变量 TNS_ADMIN,该系统变量用来确定是使用的哪个tnsnames.ora文件配置(在ADMIN文件夹下,还有一个SAMPLE文件夹,里面同样有tnsnames.ora与listener.ora文件)。
3.如果你搞不清楚使用的是哪个tnsnames.ora与listener.ora文件,那你可以把ADMIN文件夹和SAMPLE文件夹的tnsnames.ora与listener.ora文件都做修改。
个人总结
其实我也是第一次遇到这个问题,可能表述的不是很正确。不过在我解决了自己的ORA-12514问题后,也以同样的方法帮助了其他朋友解决了此问题,说明解决方法还是可行的。如果你有更好的解决方案,也希望多交流沟通。