欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

安装/升级Oracle遇到ORA-12514问题

程序员文章站 2024-01-23 08:34:52
...

问题原因

前几天升级Oracle数据库,从11.2.0.1升级至11.2.0.4,安装完成后,打开PL/SQL,显示ORA-12514,如图:

安装/升级Oracle遇到ORA-12514问题

问题阐述

ORA-12514:监听程序当前无法识别链接描述符中请求的服务,简单的来说就是Oracle数据库的监听器配置有问题。

解决方案

  1. 打开cmd命令,输入tnsping orcl ,正常情况下是这样显示的:
    安装/升级Oracle遇到ORA-12514问题
    下面会显示监听器配置文件的路径及配置信息。如果不能出现监听器信息,可以输人lsnrctl status 命令查看监听器状态:
    安装/升级Oracle遇到ORA-12514问题
  2. 根据上个图片显示的监听程序参数文件地址:
    安装/升级Oracle遇到ORA-12514问题
    找到这个文件,打开。然后再打开net manger:
    安装/升级Oracle遇到ORA-12514问题
    打开:
    安装/升级Oracle遇到ORA-12514问题
    Net Manager里会显示出监听器的信息,对比着listener.ora文件中的信息,确保有一个监听器是相同的。
    安装/升级Oracle遇到ORA-12514问题
    如果没有相同的,在listener.ora文件的LISTENER代码块里增加一个监听器,使之与Net Manager监听器里的一致。
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = LOCALHOST)(PORT = 1521))
    )
  )
  1. 在listener.ora文件目录下,还有一个tnsnames.ora文件,这个文件也要做修改:
    安装/升级Oracle遇到ORA-12514问题
    细心的朋友可能会发现,这个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遇到ORA-12514问题
    这个需要改成升级后的路径。
  • 若是安装Oracle,也要确认此路径是否和你当前安装Oracle路径的相同。

2.新增一个系统变量 TNS_ADMIN,该系统变量用来确定是使用的哪个tnsnames.ora文件配置(在ADMIN文件夹下,还有一个SAMPLE文件夹,里面同样有tnsnames.ora与listener.ora文件)。

安装/升级Oracle遇到ORA-12514问题
3.如果你搞不清楚使用的是哪个tnsnames.ora与listener.ora文件,那你可以把ADMIN文件夹和SAMPLE文件夹的tnsnames.ora与listener.ora文件都做修改。

个人总结

其实我也是第一次遇到这个问题,可能表述的不是很正确。不过在我解决了自己的ORA-12514问题后,也以同样的方法帮助了其他朋友解决了此问题,说明解决方法还是可行的。如果你有更好的解决方案,也希望多交流沟通。