Oracle备库TNS连接失败的分析

简介: 今天在测试12c的temp_undo的时候,准备在备库上测试一下,突然发现备库使用TNS连接竟然失败。 抛出的错误如下: $ sqlplus sys/oracle@testdb as sysdba SQL*Plus: Release 12.

今天在测试12c的temp_undo的时候,准备在备库上测试一下,突然发现备库使用TNS连接竟然失败。

抛出的错误如下:

$ sqlplus sys/oracle@testdb as sysdba
SQL*Plus: Release 12.1.0.2.0 Production on Thu Dec 8 15:30:10 2016
Copyright (c) 1982, 2014, Oracle.  All rights reserved.
ERROR:
ORA-12514: TNS:listener does not currently know of service requested in connect
descriptor

尝试连接PDB也是同样的错误。

查看$ORACLE_HOME/network/admin/listener.ora的配置。

已经做了静态注册.

SID_LIST_LISTENER_12c_1526=
(SID_LIST=
      (SID_DESC=
      (GLOBAL_DBNAME=testdb)
      (ORACLE_HOME=/home/U01/app/oracle/product/12c/db_1)
      (SID_NAME=testdb)
     )
     (SID_DESC=
      (GLOBAL_DBNAME=test)
      (ORACLE_HOME=/home/U01/app/oracle/product/12c/db_1)
      (SID_NAME=testdb)
))   

查看tnsnames.ora的配置也没有问题,

test =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = xxx)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = test)
      (SERVER = DEDICATED)
    )
  )

随便查看了一个监听的配置,比如1526

lsnrct status listener_12c_1526,输出也全然没有什么问题,所以自己感觉这问题越发奇怪,甚至还想,莫非又碰到了12c的一个bug了。

如果备库在ADG模式,备库TNS不可用,那备库就没有什么其他的意义了。

这个时候我们还是来看看监听日志,到指定目录下,发现了下面的内容。Thu Dec 08 14:43:17 2016
08-DEC-2016 14:43:17 * (CONNECT_DATA=(SERVICE_NAME=test)(SERVER=DEDICATED)(CID=(PROGRAM=sqlplus)(HOST=testdb2.cyou.com)(USER=oracle)
)) * (ADDRESS=(PROTOCOL=tcp)(HOST=xxxx)(PORT=2437)) * establish * test * 12514
TNS-12514: TNS:listener does not currently know of service requested in connect descriptor
Thu Dec 08 14:44:46 2016

看着这段内容,感觉哪里好像不大对劲,但是又实在说不出。

查看MOS,和主库反复做监听配置的比对,也没有发现问题,一筹莫展的时候,决定从头开始来看待这个问题。

监听的配置没有问题,根据错误只能指向监听的状态了。

我们来看看监听的进程状态

00:14:32 /home/U01/app/oracle/product/11.2.3/db_1/bin/tnslsnr LISTENER_1522 -inherit
00:13:43 /home/U01/app/oracle/product/11.2.3/db_1/bin/tnslsnr LISTENER_1528 -inherit
00:25:48 /home/U01/app/oracle/product/11.2.3/db_1/bin/tnslsnr LISTENER_1525 -inherit
00:14:35 /home/U01/app/oracle/product/11.2.3/db_1/bin/tnslsnr LISTENER_1523 -inherit
00:00:47 /home/U01/app/oracle/product/12c/db_1/bin/tnslsnr listener_12c_1526 -inherit
00:17:28 /home/U01/app/oracle/product/11.2.3/db_1/bin/tnslsnr LISTENER -inherit

看到这里,决定面壁5分钟。


原来我这个库上最早是安装了11g的ORACLE_HOME,没想到后来整合系统的时候,用了12c,搭建备库的时候,因为主备库的连接配置只设置了1526的端口,其它的都没动,所以n多天后用起来的时候,栽在了这里。

所以修复方式就很简单了,切换到11g的ORACLE_HOME,把之前的监听都停止,然后重新启动12c的监听即可。

所以说透过这个简单的问题,其实可以总结出很多小经验。

  1. 问题解决不能止步于当前,因为偷懒,疏忽导致的后来的潜在问题,遗留问题

  2. 另外一个是标准化,规范化的使用。无规矩不成方圆。

  3. 测试验证,备库搭建完成后,可以做一些简单的应用测试,保证备库在ADG模式下可用

  4. 这个过程中,有一个推理的逻辑不够严谨,连接的端口是1521,而我是用1526来做的简单验证。

  5. 尽管这是一个测试环境,但是还是需要引以为戒。



目录
相关文章
|
12月前
|
Oracle 安全 关系型数据库
【Oracle】使用Navicat Premium连接Oracle数据库两种方法
以上就是两种使用Navicat Premium连接Oracle数据库的方法介绍,希望对你有所帮助!
2346 28
|
SQL Oracle 关系型数据库
实时计算 Flink版产品使用合集之和Oracle数据同步必须是使用主库吗
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStreamAPI、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
实时计算 Flink版产品使用合集之和Oracle数据同步必须是使用主库吗
|
Oracle 关系型数据库 数据库
已解决:idea 连接 oracle 数据库 避雷
已解决:idea 连接 oracle 数据库 避雷
282 2
|
Oracle NoSQL 关系型数据库
主流数据库对比:MySQL、PostgreSQL、Oracle和Redis的优缺点分析
主流数据库对比:MySQL、PostgreSQL、Oracle和Redis的优缺点分析
3075 3
|
Oracle 关系型数据库 Linux
讲解linux下的Qt如何编译oracle的驱动库libqsqloci.so
通过这一连串的步骤,可以专业且有效地在Linux下为Qt编译Oracle驱动库 `libqsqloci.so`,使得Qt应用能够通过OCI与Oracle数据库进行交互。这些步骤适用于具备一定Linux和Qt经验的开发者,并且能够为需要使用Qt开发数据库应用的专业人士提供指导。
714 1
讲解linux下的Qt如何编译oracle的驱动库libqsqloci.so
|
SQL Oracle 关系型数据库
Python连接Oracle
Python连接Oracle
278 0
|
Oracle 关系型数据库 MySQL
shell获取多个oracle库mysql库所有的表
请注意,此脚本假设你有足够的权限访问所有提到的数据库。在实际部署前,请确保对脚本中的数据库凭据、主机名和端口进行适当的修改和验证。此外,处理数据库操作时,务必谨慎操作,避免因错误的脚本执行造成数据损坏或服务中断。
273 0
|
Oracle 数据可视化 关系型数据库
Oracle数据库安装及使用Navicat连接oracle2
Oracle数据库安装及使用Navicat连接oracle
237 1
|
Oracle 关系型数据库 数据库
实时计算 Flink版产品使用问题之连接到Oracle数据库但无法读取到数据,是什么导致的
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
Oracle 关系型数据库
Navicat 连接Oracle ORA-28547: connection to server failed, probable Oracle Net admin error
Navicat 连接Oracle ORA-28547: connection to server failed, probable Oracle Net admin error
1303 0

热门文章

最新文章

推荐镜像

更多