oracle中ORA-12514问题解决方法

Oracle中ORA-12514问题解决方法

问题描述:

在使用Oracle数据库时,有时会遇到ORA-12514错误,该错误提示信息如下:

ORA-12514: TNS:listener does not currently know of service requested in connect descriptor

该错误提示是由Oracle监听程序(Listener)发出的,通常是由于数据库服务名称无法正确定位或不存在所致。

解决方法:

确认服务名是否正确

首先需要确认连接字符串(Connect Descriptor)中的服务名(Service Name)是否正确。连接字符串一般格式为:

(DESCRIPTION= (ADDRESS_LIST= 
(ADDRESS= (PROTOCOL=TCP) (HOST=hostname) (PORT=port))
) (CONNECT_DATA=(SERVICE_NAME=servicename)))

其中的 servicename 就是要连接的数据库的服务名称。

如果使用Oracle的 SID 作为服务名称,则需要将 SID 转换为服务名称,转换方法如下:

SELECT instance_name, status, db_name, db_unique_name 
FROM v$instance;

其中 db_name 就是服务名称。

确认Listener中是否存在对应的服务

如果服务名称正确,仍然无法连接,则需要确认 Listener 中是否存在对应的服务。使用 lsnrctl 工具可以查看 Listener 中是否存在目标服务。

使用方法如下:
首先进入 lsnrctl 工具的解释界面:

lsnrctl

然后在 lsnrctl 工具的解释界面中,查看数据库服务的连接状况:

status

如果目标服务不存在,则需要在 Listener 中增加对应的服务。如果目标服务已存在但无法连接,则可能是 Listener 的配置有问题,需要检查 Listener 的配置文件 listener.ora 是否正确。

示例说明:

示例1:确认服务名是否正确

(DESCRIPTION=
    (ADDRESS_LIST=
      (ADDRESS=
        (PROTOCOL=TCP)
        (HOST=localhost)
        (PORT=1521)
      )
   )
   (CONNECT_DATA=
     (SERVICE_NAME=ORCLCDB)
   )
 )

上述示例的服务名称为 ORCLCDB。

示例2:确认Listener中是否存在对应的服务

在命令提示符中输入以下命令:

lsnrctl status

如果该命令输出中不包含需要连接的数据库服务,则需要在 Listener 中增加对应的服务。在 listener.ora 配置文件中增加如下内容:

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = ORA)
      (SID_NAME = ORA)
      (ORACLE_HOME = C:\oracle\product\12.2.0\dbhome_1)
    )
  )

其中 ORA 是需要连接的服务名称,ORACLE_HOME 是 Oracle 的安装根目录。增加完成之后,需要重启 Listener 才能使更改生效。

总结

通过以上步骤的操作,你可以解决ORA-12514的问题。在进行操作时,需要注意服务名是否正确以及 Listener 是否已经存在需要连接的服务。如果有需要的话,也可以尝试重启 Listener 服务。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:oracle中ORA-12514问题解决方法 - Python技术站

(0)
上一篇 2023年5月21日
下一篇 2023年5月21日

相关文章

  • 流程图和数据流图的区别

    下面是我对流程图和数据流图的区别进行详细讲解的攻略。 流程图和数据流图的区别 定义和用途 流程图和数据流图都是软件设计中常用的一种图形化表示方法,用于描述一个系统或程序流程和数据流动的过程。 流程图主要用于描述一个系统或程序中的流程处理过程,从输入到处理再到输出的全过程,同时还可能包括决策、循环等控制结构。它以图形化的形式展示了一个系统或程序的主要业务流程,…

    database 2023年3月27日
    00
  • linux每天定时备份数据库并删除十天前数据详细步骤

    下面是针对“linux每天定时备份数据库并删除十天前数据”的详细攻略步骤: 1. 安装crontab 在linux系统下,定时任务可以使用crontab来实现。如果你的系统中没有安装crontab,则需要先安装。 使用以下命令来安装crontab: sudo apt-get install crontab 2. 编写备份脚本 首先,需要编写一个可以备份数据库…

    database 2023年5月22日
    00
  • 数据库:socketserver模块、MySQL(一)

    一、socketserver实现并发 基于tcp的套接字,关键就是两个循环,一个链接循环,一个通信循环。 socketserver模块中分两大类:server类(解决链接问题)和request类(解决通信问题) server类: request类: 继承关系:   以下述代码为例,分析socketserver源码: ftpserver=socketserve…

    MySQL 2023年4月13日
    00
  • redis分布式锁redisson

    原文:https://blog.csdn.net/Kincym/article/details/78697472   关于redisson的源代码请参考官网:https://github.com/redisson/redisson redisson官方讲解参考:https://github.com/redisson/redisson/wiki/%E7%9B%…

    Redis 2023年4月11日
    00
  • mysql如何分别按年/月/日/周分组统计数据详解

    当我们想从MySQL数据库中统计按年/月/日/周分组的数据时,我们可以使用MySQL中的GROUP BY语句来进行分组统计。在GROUP BY语句中,我们可以通过使用YEAR(), MONTH(), DAYOFMONTH()和WEEK()等MySQL内置函数来分别按照年、月、日和周进行分组统计。 具体的语法格式如下所示: SELECT YEAR(date_c…

    database 2023年5月22日
    00
  • CentOS7环境下MySQL8常用命令小结

    以下是CentOS7环境下MySQL8常用命令小结的完整攻略。 一、安装MySQL8 MySQL8可以通过yum命令进行安装: sudo yum install mysql-server 安装完成后,可以通过以下命令启动MySQL8服务: sudo systemctl start mysqld.service 二、登录MySQL8 在CentOS7环境下,可…

    database 2023年5月18日
    00
  • Oracle WebLogic Server 12.2.1.2安装部署教程

    Oracle WebLogic Server 12.2.1.2 安装部署教程 本文将介绍 Oracle WebLogic Server 12.2.1.2 的安装和部署过程。 准备工作 在开始安装前,您需要进行以下准备工作: 下载安装程序:从官方网站下载 WebLogic Server 12.2.1.2 的安装程序,或者从 Oracle 官方 Docker H…

    database 2023年5月22日
    00
  • Java数据库编程中的技巧

    Java数据库编程中的技巧 介绍 Java数据库编程是Java开发中必须掌握的一项技能,它允许Java应用程序与各种数据库交互,从而实现数据存取和管理等功能。本文将分享一些Java数据库编程中的技巧,以帮助Java开发人员更方便地进行数据库编程。 技巧一:使用JDBC API JDBC API是Java对象访问数据库的标准API,使用JDBC API可以使J…

    database 2023年5月21日
    00
合作推广
合作推广
分享本页
返回顶部