最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
当前位置: 首页 - 科技 - 知识百科 - 正文

监听器注册与ORA-12514错误分析

来源:懂视网 责编:小采 时间:2020-11-09 11:08:02
文档

监听器注册与ORA-12514错误分析

监听器注册与ORA-12514错误分析:在Oracle data guard环境中,主库的alert.log文件出现ORA-12514: TNS:listener does not currently know of service requested 在Oracle data guard环境中,主库的alert.log文件出现ORA-12514: TNS:listener
推荐度:
导读监听器注册与ORA-12514错误分析:在Oracle data guard环境中,主库的alert.log文件出现ORA-12514: TNS:listener does not currently know of service requested 在Oracle data guard环境中,主库的alert.log文件出现ORA-12514: TNS:listener

在Oracle data guard环境中,主库的alert.log文件出现ORA-12514: TNS:listener does not currently know of service requested

在Oracle data guard环境中,,主库的alert.log文件出现"ORA-12514: TNS:listener does not currently know of service requested in connect descriptor"错误信息,导致主库上的日志无法传输到备库上,data guard数据同步不能实现。

这是一个最最基础的错误,在我们最初从客户端连接Oracle数据库时就可能碰到这个错误。

在主库上使用tnsping 这个oracle net服务别名,如下所示:

  • OK (0 msec)
  • 据此信息可以判断,数据库服务器上的监听器正常,客户端与数据库服务器的网络通讯正常,请求的端口184正常。问题仅仅是监听器不识别在连接符中提供的服务。

    问题分析

    主库上请求连接备库的服务名webdb,在备库上不能被监听器识别。

    在备库上,服务名webdb既没有被监听器动态注册,也没有静态配置在监听器配置文件listener.ora中。

    这里解释一下注册的概念。

    我个人理解,注册就是将数据库实例作为一个服务写到到监听程序的监控列表中。

    客户端连接数据库时,可以通过这个服务名直接申请到对应的数据库连接,而不再通过数据库实例或者数据库名称。这样客户端也就可以不用知道数据库实例和数据库名称。虽然服务名一般和实例名是一样的,但有这个功能后就可以不一样。

    在数据库实例启动过程中,数据库实例严格地说是PMON进程会向监听器注册相应的服务。这个过程称为动态注册。

    监听器程序在服务注册后,就记录了服务名和实例名之间的对应关系。从而使得客户端使用服务名访问时能从服务名可以转换到实例名。一个服务名下可以包含多个不同的实例名称,如RAC的下服务名;同样,一个实例名下,可以有多个不同服务名。服务名和实例名的对应关系PMON进程从数据库初始化参数service_names和instances中获取。

    在服务名注册到监听器之后,客户端只需要通过服务名就能访问某个实例。在RAC下,这个服务名可以用来实现负载均衡和透明故障切换。

    如果这时客户端还是使用实例名访问数据库,那么就不能实现RAC下的负载均衡和故障透明切换。

    但是,动态注册不一定时时都生效的。如ORA-12514就是动态注册不生效,导致监听器无法识别客户端连接符中提供的服务名,从而拒绝建立数据库连接时报的错误信息。

    动态注册默认仅仅注册到默认的监听器上,这个默认值有三项指标:名称是LISTENER、端口是1521、协议是TCP。如果需要向非默认监听注册,则需要配置local_listener参数。

    使用tnsping得到的信息显示,监听器使用的端口号是1844,不是默认选项。因此,该服务名并没有被自动注册进入到监听器。

    linux

    声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文档

    监听器注册与ORA-12514错误分析

    监听器注册与ORA-12514错误分析:在Oracle data guard环境中,主库的alert.log文件出现ORA-12514: TNS:listener does not currently know of service requested 在Oracle data guard环境中,主库的alert.log文件出现ORA-12514: TNS:listener
    推荐度:
    标签: 注册 错误 出错
    • 热门焦点

    最新推荐

    猜你喜欢

    热门推荐

    专题
    Top