oracle中ORA-12514问题解决方法

yizhihongxing

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日

相关文章

  • SQL 年月日加减法

    下面是SQL中年月日加减法的完整攻略。 1. DATEADD函数 DATEADD函数用于在日期或时间上增加或减少一定数量的时间间隔。它的基本语法如下: DATEADD(datepart, number, date) 其中: datepart是要增加或减少的时间间隔,比如年、月、日、小时等等,支持的时间间隔由不同的数据库管理系统定义。 number是要增加或减…

    database 2023年3月27日
    00
  • 几种MySQL中的联接查询操作方法总结

    几种MySQL中的联接查询操作方法总结 在MySQL中,联接查询是非常常见的操作,它可以将多个数据表中的数据合并在一起,能够满足复杂查询的需求。本文总结了几种MySQL中的联接查询操作方法,希望能为读者提供一些参考。 内连接查询(INNER JOIN) 内连接查询是联接操作中最常用的一种方法。它会将多个表中共有的数据记录连接在一起,只输出同时存在于这些表中的…

    database 2023年5月22日
    00
  • mongodb主从复制_动力节点Java学院整理

    MongoDB主从复制攻略 什么是MongoDB主从复制 MongoDB的复制机制是指将一台Primary节点的数据自动同步到一个或多个Secondary节点的过程,其中Primary节点是一个可写的节点,而Secondary节点只有在Primary节点宕机或者其他情况下才会变成可写节点。 主从复制原理 MongoDB的主从复制是通过Oplog来实现的,Op…

    database 2023年5月22日
    00
  • VPS自动备份数据库到FTP的脚本代码

    首先,我们需要明确什么是VPS、FTP和数据库自动备份脚本。VPS指的是Virtual Private Server,即虚拟专用服务器,是一种虚拟化技术,能够在一台物理机器上划分出多个独立的虚拟服务器。FTP指的是文件传输协议,是一种用于文件传输的网络协议。数据库自动备份脚本则是一段自动化脚本代码,能够在设定时间内自动备份VPS服务器上的数据库,并将备份文件…

    database 2023年5月22日
    00
  • mysql-client ERROR 2002解决方法

    主机环境:debian 8 开发环境 :xampp 安装 mysql-client: #apt-get install mysql-client 启动xampp mysql环境: #/opt/lampp/./lampp startmysql 连接mysql  会报2002 错误: ERROR 2002 : Can’t connect to local MyS…

    MySQL 2023年4月12日
    00
  • ubuntu下安装Java 8的步骤教程

    以下是ubuntu下安装Java 8的步骤教程的完整攻略。 1. 更新本地软件包索引 在安装Java 8之前,我们需要更新本地软件包索引,确保我们获取的是最新的软件包信息。在终端中执行以下命令: sudo apt update 2. 安装Java 8 2.1. 在默认存储库中安装Java 在Ubuntu默认存储库中,我们可以找到Java 8的安装包。但是,默…

    database 2023年5月22日
    00
  • 使用python操作redis(管道)

    一、redis连接 redis提供两个类Redis和StrictRedis用于实现Redis的命令,StrictRedis用于实现大部分官方的命令,并使用官方的语法和命令,Redis是StrictRedis的子类,用于向后兼容旧版本的redis-py。 redis连接实例是线程安全的,可以直接将redis连接实例设置为一个全局变量,直接使用。如果需要另一个R…

    Redis 2023年4月12日
    00
  • 用Shell脚本快速搭建Ubuntu下的Nodejs开发环境

    下面就是“用Shell脚本快速搭建Ubuntu下的Nodejs开发环境”的完整攻略。 1. 环境要求 Ubuntu操作系统 网络连接 2. 安装步骤 步骤1:打开终端 在Ubuntu桌面上,按下CTRL + ALT + T快捷键,即可打开终端。 步骤2:创建脚本文件 在终端中使用nano创建一个新文件,并将其命名为node_install.sh。 nano …

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