连接Oracle数据库失败(ORA-12514)故障排除

简介: ORA-12514的故障是很多新手在连接Oracle数据库时经常遇到故障,它通常表示无法连接到数据库实例,这里姚远老师告诉大家如何排除这类故障。

ORA-12514的故障是很多新手在连接Oracle数据库时经常遇到故障,它通常表示无法连接到数据库实例,这里姚远老师告诉大家如何排除这类故障。


症状

当尝试连接到Oracle数据库实例时,可能会收到ORA-12514错误消息。此错误通常会在Oracle客户端或应用程序中显示。

image.png

此外,还可能会在数据库服务器上的日志文件中看到类似于以下消息的记录:


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


产生原因

ORA-12514错误通常是由以下原因之一造成的:


无效的服务名称:连接描述符中指定的服务名称不存在。例如,可能会发生拼写错误或者数据库实例名称更改而未及时更新连接描述符的情况。

oracle@Yao ~$ sqlplus sys/yaoyuan@localhost/orc1 as sysdba
SQL*Plus: Release 19.0.0.0.0 - Production on Wed Mar 1 16:00:59 2023
Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle.  All rights reserved.
ERROR:
ORA-12514: TNS:listener does not currently know of service requested in connect
descriptor




监听程序未运行:如果Oracle数据库监听程序未运行,则无法连到数据库实例。此情况可能是由于监听程序未正确启动、网络连接故障或服务器故障等原因引起的。

oracle@yaoyuan ~$ sqlplus sys/yaoyuan@localhost/scott as sysdba
SQL*Plus: Release 19.0.0.0.0 - Production on Wed Mar 1 16:16:54 2023
Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle.  All rights reserved.
ERROR:
ORA-12541: TNS:no listener

注意:这里的提示是“no listener”,和前面的“listener does not currently know of service requested in connect descriptor”不同。


解决办法

针对ORA-12514错误,可以采取以下措施来解决问题:


检查连接描述符:确保连接描述符中指定的服务名称是正确的。如果服务名称发生变化,请更新连接描述符。例如下面两个连接,第一次失败,第二次成功,大家看看是什么问题呢?

oracle@Yao ~$ sqlplus sys/yaoyuan@localhost/orc1 as sysdba
SQL*Plus: Release 19.0.0.0.0 - Production on Wed Mar 1 16:29:24 2023
Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle.  All rights reserved.
ERROR:
ORA-12514: TNS:listener does not currently know of service requested in connect
descriptor
Enter user-name:
oracle@Yao ~$ sqlplus sys/yaoyuan@localhost/orcl as sysdba
SQL*Plus: Release 19.0.0.0.0 - Production on Wed Mar 1 16:29:40 2023
Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle.  All rights reserved.
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0



仔细看看就明白了,原来服务名是orcl被错误的写成了orc1。当然在生产环境,大部分时候服务名是在tnsnames.ora文件中配置的:


oracle@yaoyuan ~$ cat /u01/app/oracle/product/19.3.0/db_1/network/admin/tnsnames.ora
...
ORCL =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = oracleace)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = orc1)
    )
  )


注意这里的SERVICE_NAME中有个不容易察觉的错误。

其它可能的问题和对应的解决方法包括:


确认监听程序已运行:可以通过命令行或图形界面工具来检查监听程序是否正在运行。如果监听程序未运行,则需要启动它。

检查网络连接:如果存在网络连接问题,则需要解决网络问题。例如,可以检查网络配置、防火墙设置等。

检查数据库实例状态:如果数据库实例已停止或崩溃,则需要启动数据库实例。

总之,ORA-12514错误通常表示无法连接到数据库实例。通过检查连接描述符、监听程序状态、网络连接和数据库实例状态等方面,可以找到并解决问题。

相关文章
|
18天前
|
SQL Oracle 关系型数据库
Oracle数据库优化方法
【10月更文挑战第25天】Oracle数据库优化方法
26 7
|
18天前
|
Oracle 关系型数据库 数据库
oracle数据库技巧
【10月更文挑战第25天】oracle数据库技巧
22 6
|
18天前
|
存储 Oracle 关系型数据库
Oracle数据库优化策略
【10月更文挑战第25天】Oracle数据库优化策略
17 5
|
25天前
|
存储 Oracle 关系型数据库
数据库数据恢复—Oracle ASM磁盘组故障数据恢复案例
Oracle数据库数据恢复环境&故障: Oracle ASM磁盘组由4块磁盘组成。Oracle ASM磁盘组掉线 ,ASM实例不能mount。 Oracle数据库故障分析&恢复方案: 数据库数据恢复工程师对组成ASM磁盘组的磁盘进行分析。对ASM元数据进行分析发现ASM存储元数据损坏,导致磁盘组无法挂载。
|
9天前
|
SQL 关系型数据库 MySQL
go语言数据库中mysql驱动安装
【11月更文挑战第2天】
23 4
|
7天前
|
SQL 关系型数据库 MySQL
12 PHP配置数据库MySQL
路老师分享了PHP操作MySQL数据库的方法,包括安装并连接MySQL服务器、选择数据库、执行SQL语句(如插入、更新、删除和查询),以及将结果集返回到数组。通过具体示例代码,详细介绍了每一步的操作流程,帮助读者快速入门PHP与MySQL的交互。
22 1
|
1月前
|
存储 关系型数据库 MySQL
Mysql(4)—数据库索引
数据库索引是用于提高数据检索效率的数据结构,类似于书籍中的索引。它允许用户快速找到数据,而无需扫描整个表。MySQL中的索引可以显著提升查询速度,使数据库操作更加高效。索引的发展经历了从无索引、简单索引到B-树、哈希索引、位图索引、全文索引等多个阶段。
61 3
Mysql(4)—数据库索引
|
16天前
|
监控 关系型数据库 MySQL
数据库优化:MySQL索引策略与查询性能调优实战
【10月更文挑战第27天】本文深入探讨了MySQL的索引策略和查询性能调优技巧。通过介绍B-Tree索引、哈希索引和全文索引等不同类型,以及如何创建和维护索引,结合实战案例分析查询执行计划,帮助读者掌握提升查询性能的方法。定期优化索引和调整查询语句是提高数据库性能的关键。
82 1
|
18天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据需求选择最合适的方法。通过具体案例,展示了编译源码安装的灵活性和定制性。
61 2
|
21天前
|
存储 关系型数据库 MySQL
MySQL vs. PostgreSQL:选择适合你的开源数据库
在众多开源数据库中,MySQL和PostgreSQL无疑是最受欢迎的两个。它们都有着强大的功能、广泛的社区支持和丰富的生态系统。然而,它们在设计理念、性能特点、功能特性等方面存在着显著的差异。本文将从这三个方面对MySQL和PostgreSQL进行比较,以帮助您选择更适合您需求的开源数据库。
84 4

推荐镜像

更多