今天在测试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的监听即可

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

Oracle备库TNS连接失败的分析的更多相关文章

  1. OGG 从Oracle备库同步数据至kafka

    OGG 从Oracle备库同步数据至kafka Table of Contents 1. 目的 2. 环境及规划 3. 安装配置JDK 3.1. 安装jdk 3.2. 配置环境变量 4. 安装Data ...

  2. Oracle备库宕机启动解决方案

    简介 ORA-10458: standby database requires recovery ORA-01196: 文件 1 由于介质恢复会话失败而不一致 ORA-01110: 数据文件 1: ' ...

  3. Redis偶发连接失败案例分析

    [作者] 张延俊:携程技术保障中心资深DBA,对数据库架构和疑难问题分析排查有浓厚的兴趣. 寿向晨:携程技术保障中心高级DBA,主要负责携程Redis及DB的运维工作,在自动化运维,流程化及监控排障等 ...

  4. oracle oracle sqldeveloper 12505 创建连接失败

    ref:http://blog.csdn.net/yangwenxue_admin/article/details/45062557

  5. Oracle 19c Data Guard DML Redirection ADG备库上执行DML重定向(未来更好的进行读写分离)

    资料来自官方网站: https://docs.oracle.com/en/database/oracle/oracle-database/19/sbydb/managing-oracle-data-g ...

  6. Oracle主库归档丢失,备库日志有gap,在不重建备库的情况下,恢复备库

    本文主要描述Oracle备库日志与主库日志之间有gap,切主库这部分gap的归档日志已经删除或丢失,如何在不重建备库的情况下,恢复备库. 欢迎转载,请注明作者.出处. 作者:张正 blog:http: ...

  7. 备库Seconds_Behind_Master的计算

    背景 在mysql主备环境下,主备同步过程如下,主库更新产生binlog, 备库io线程拉取主库binlog生成relay log.备库sql线程执行relay log从而保持和主库同步. 理论上主库 ...

  8. MySQL · 答疑解惑 · 备库Seconds_Behind_Master计算

    背景 在mysql主备环境下,主备同步过程如下,主库更新产生binlog, 备库io线程拉取主库binlog生成relay log.备库sql线程执行relay log从而保持和主库同步. 理论上主库 ...

  9. OOM导致的备库raylog损坏导致主从复制异常

    问题发现告警数据库出现复制中断,延迟超过100秒 问题排查复制信息检查,通过’show slave status\G’命令可以查看复制线程详细的工作状态,对于判断复制中断的原因有一些指导性意义.当时的 ...

随机推荐

  1. android AES 加密

    import javax.crypto.Cipher;import javax.crypto.KeyGenerator;import javax.crypto.SecretKey;import jav ...

  2. Java web会话简单应用

    Java会话主要分为两块:Cookie和HttpSessionCookie技术:会话数据保存在浏览器客户端.Session技术:会话数据保存在服务器端.一.下面介绍一下Cookie的应用1. Cook ...

  3. 5种处理js跨域问题方法汇总(转载)

    1.JSONP跨域GET请求 ajax请求,dataType为jsonp.这种形式需要请求在服务端调整为返回callback([json-object])的形式.如果服务端返回的是普通json对象.那 ...

  4. Java 数组

    数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同. Java语言中提供的数组是用来存储固定大小的同类型元素. 你可以声明一个数组变量,如numbers[100 ...

  5. jni操作jobject

    一. 注册JNI函数 1.         静态方法 一般使用javah进行编译,生成很长的文件名和函数名字,这个书写不方便,影响运行效率. 2.         动态注册 使用JNINativeMe ...

  6. shell-script的简单举例

    #!/bin/bash #defind the path PATH=/usr/local export PATH read -p "please input your first name: ...

  7. httpClient实现微信公众号消息群发

    1.实现功能 向关注了微信公众号的微信用户群发消息.(可以是所有的用户,也可以是提供了微信openid的微信用户集合) 2.基本步骤 前提: 已经有认证的公众号或者测试公众账号 发送消息步骤: 发送一 ...

  8. 移动前端手机输入法自带emoji表情字符处理

    今天,测试给我提了一个BUG,说移动端输入emoji表情无法提交.很早以前就有思考过,手机输入法里自带的emoji表情,应该是某些特殊字符.既然是字符,那应该都能提交才对,可是为啥会被卡住呢?搜了一下 ...

  9. 手机app软件开发有什么需要注意的细节?

    在做手机产品设计的过程中,遇到很多看似很小,且很容易被忽略的问题,正是这些手机应用软件开发小问题,一次次的撩拨用户的耐心,让用户对你的产品心生怨念.刚出道的朋友没有经过实战,对细节注意不多,往往都会遇 ...

  10. XIB——AutoLayout添加约束

    仿QQ登录界面: 说明:以下各图背景红色只是方便看清楚: 1.创建工程:创建xib文件,不会,可看上上上篇:初识xib: 2.打开xib文件: (1).创建头像: 拖控件:uiimageview--& ...