当前位置:  数据库>oracle

Oracle备库TNS连接失败的分析

    来源: 互联网  发布时间:2017-06-25

    本文导语: 今天在测试Oracle 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.  A...

今天在测试Oracle 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. 尽管这是一个测试环境,但是还是需要引以为戒。


    
 
 

您可能感兴趣的文章:

  • 在ubuntu10.04上安装oracle11g失败
  • jsp文件连接oracle失败
  • Oracle 11G SELinux原因启动失败的解决办法
  • linux 4虚拟机下安装oracle 10g失败。
  • 请教:为什么删除不掉?我用超级用户删除某一文件夹rm -R oracle失败。
  • 解决oracle用户连接失败的解决方法
  • SOS!!!环境:Tomcat4+Oracle8i;链接数据库失败,请各位大虾帮忙指正
  • Oracle用户密码含特殊字符时登陆失败问题
  • oracle客户端PLSQL连接失败解决方法
  • 安装Oracle失败后是否一定要重装系统
  • rh9下安装oracle9.2失败,(确切说是在install完毕后的配置里面),救命!
  • Oracle Dataguard备库失败与主库响应测试
  • 网间Oracle的连接,远程连接Oracle服务器??
  • oracle远程连接服务器出现 ORA-12170 TNS:连接超时 解决办法
  • 不想装oracle却还要在redhat8.0下用jdbc连接oracle如何实现?
  • 我用JBuilder 7连接局域网内一ORACLE 9( 在本机可以连接)的问题?
  • 关于JDBC连接Oracle数据库,是否必须有Oracle客户端
  • oracle 数据库连接分析
  • Linux系统下利用java连接Oracle 10G
  • Jbuilder 7.0 连接 Oracle 数据库
  • 怎么直接通过JDBC连接oracle?
  • 请教: Javaswing 和 Oracle JDBC thin 连接的问题
  • opendbx 为什么连接不上oracle?
  • 100分寻求最优化的连接oracle的java程序,请给我讲出理由,我是初学者,在做项目时不想让连接oracle影响我的程序性能
  • 如何在JBuilder中连接Oracle数据库?
  • 怎样调出ORACLE数据库中的数据,该如何连接?
  • 请教JSP与ORACLE连接问题。
  • jdbc连接oracle
  • 关于Jbuilder7连接oracle9??
  • 再问java 连接oracle 问题,急!
  • 讨论:jdbc连接oracle数据库
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Oracle中关数据库对象的统计分析
  • 深入oracle特定信息排序的分析
  • Oracle移动数据文件到新分区步骤分析
  • 基于oracle小数点前零丢失的问题分析
  • Oracle date如何比较大小分析
  • Linux上建立第二个ORACLE实例分析
  • Oracle 数据库容灾复制解决方案分析Shar Plex
  • 计算机名称修改后Oracle不能正常启动问题分析及解决
  • oracle导出sql语句的结果集和保存执行的sql语句(深入分析)
  • linux as3 _weblogic8_oracle系统访问50万/日,常常ping不通,分析原因
  • Oracle数据库安全策略分析 (三)第1/2页
  • Oracle数据库安全策略分析(一)第1/2页
  • Oracle数据完整性嵌套事务调用分析研究
  • Oracle In和exists not in和not exists的比较分析
  • oracle修改SGA后无法启动问题分析及解决方法
  • Oracle案例:分析10053跟踪文件
  • Oracle数据库安全策略分析(二)
  • Oracle 9i中自动撤销管理的优点分析
  • Oracle数据库后台进程的功能分析
  • 深入分析关于Oracle数据库的备份策略
  • Oracle 12c发布简单介绍及官方下载地址
  • 在linux下安装oracle,如何设置让oracle自动启动!也就是让oracle那个服务自动启动,不是手动的
  • oracle 11g最新版官方下载地址
  • 请问su oracle 和su - oracle有什么不同?
  • Oracle 数据库(oracle Database)Select 多表关联查询方式
  • 虚拟机装Oracle R12与Oracle10g
  • Oracle数据库(Oracle Database)体系结构及基本组成介绍
  • Oracle 数据库开发工具 Oracle SQL Developer
  • 如何设置让Oracle SQL Developer显示的时间包含时分秒
  • Oracle EBS R12 支持 Oracle Database 11g
  • Oracle 10g和Oracle 11g网格技术介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3