专栏首页杨建荣的学习笔记Oracle备库的PDB无法连接的问题(r11笔记第6天)

Oracle备库的PDB无法连接的问题(r11笔记第6天)

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

本文分享自微信公众号 - 杨建荣的学习笔记(jianrong-notes),作者:杨建荣

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2016-12-08

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 备库查询导致的ORA-01110错误及修复(r8笔记第67天)

    最近帮助业务部门解决了一个技术问题,因为发现有数据问题需要对存在问题的数据做分析。当然一个难点就是把数据给筛选出来,当我看到他们提供的语句,在备 库做了简单的数...

    jeanron100
  • dg的奇怪问题终结和分区问题答疑 (r7笔记第77天)

    今天来说几个问题,一个是对昨天《让我焦灼的四个问题》的升华,不能起博眼球的题目,技术分析给大家兜底了,你们看看有没有类似的问题。 还有几个小问题说说今天的感受和...

    jeanron100
  • Oracle 12c DBCA浅析(r12笔记第48天)

    我们知道在11g的环境中我们可以通过一些分析来得到DBCA的一些后台处理工作,有一点需要说明的是,如果一个12c的单实例数据库需要转换为12c的容器数据库...

    jeanron100
  • Ionic:高级的 HTML5 移动APP(Web App)开发框架

    Ionic 是一个用HTML, CSS 跟JS 开发的一个用于移动设备的混合APP 开发框架,采用 Sass与AngularJS 开发。目前,Ionic 仍然处...

    Jeff
  • Spring Boot + Mybatis 实现动态数据源

    在很多具体应用场景的时候,我们需要用到动态数据源的情况,比如多租户的场景,系统登录时需要根据用户信息切换到用户对应的数据库。又比如业务A要访问A数据库,业务B要...

    朝雨忆轻尘
  • 初识 XSS 3

    浏览器输入:http://localhost/xss/index.php?param=This is an test

    py3study
  • 科研作图之光谱图绘制

    感谢大家关注matlab爱好者微信公众号,今天给大家介绍如何绘制带可见光光谱背景的光谱图!!!

    艾木樨
  • 记一次安全应急响应中遇到的利用SSH日志触发的后门分析

    *本文作者:ForrestX386,本文属 FreeBuf 原创奖励计划,未经许可禁止转载。

    FB客服
  • 架构设计 - 日志管理接口设计

    Aichen
  • 架构设计 - 日志管理接口设计

    Aichen

扫码关注云+社区

领取腾讯云代金券