数据库学习日常案例20231218-oracle 19RAC hip远程注册服务到scan listener分析

2023-12-19

问题:

用户一套Oracle19c RAC集群,出现一个奇怪的现象,通过SCAN IP访问的连接会话都集中在节点一实例,而且用户并没有做任何的节点服务访问去控制会话的连接节点,比如常见的通过集群的高可用服务去控制应用访问连接集中在同一节点,从而避免gc产生性能消耗问题。


问题分析:

因为应用都是通过scan ip去连接的数据库,所以我们首先先检查了scan监听listener_scan1的服务注册情况,发现监听上面的服务注册存在问题,监听上的每个服务注册实例只有节点一,并没有节点二的实例,这也解释了为什么应用访问RAC集群都集中在节点一的原因,因为节点二实例根本就没有服务注册进scan监听

接下来检查节点二的scan监听实例配置参数remote_listener,确认是否有配置向scan 监听进行注册的地址,可以看到remote_listener有配置scan ip的域名以及端口


检查scan_listener的日志,发现存在一些异常的报错信息,显示出现访问被拒绝的情况,这里的169.254.31.131为节点二的haip

Incoming connection from 169.254.31.131 rejected

TNS-12546: TNS:permission denied

TNS-12560: TNS:protocol adapter error

TNS-00516:Permission denied


怀疑是不是设置了白名单访问导致的问题,检查节点一的sqlnet.ora配置,发现白名单的IP列表有包含整个业务网段(public ip,vip,scan ip所在的网段)xxx.xxx.3.*

通过跟踪数据库注册服务的过程,获取进一步详细的信息,需要注意的事,在12c之后,数据库向监听动态注册服务的后台进行为LREG (ListenerREGistration)进程,不是之前版本的pmon进程,对LREG开启跟踪

ORADEBUG针对进程的跟踪

--查看lreg进程spid
ps -ef |grep lreg
--进行跟踪
oradebug setospid xxx
oradebug dump sqlnet_server_trace 16
--关闭跟踪
oradebug dump sqlnet_server_trace 0


分析产生的跟踪文件xxx_lreg_xxx.trc,可以看到一开始数据库是向SCAN IP:xxx.xxx.3.20的地址进行注册

但后面解析地址又返回的是scan监听所在节点的haip169.254.7.254,然后遇到了错误TNS-12547,TNS-12560

为什么注册scan监听最后变成是haip的通信,我们从Oracle mos官方上的文章ORA-12514 & Services Fail to Register to SCAN Listeners After HAIP Offline (Doc ID 2500067.1)发现了答案,原来从12c之后,scan监听通过配置参数REMOTE_REGISTRATION_ADDRESS_<listener_name>将haip作为远程注册的地址,从而限制实例的动态服务注册只能通过haip进行

lsnrctl show remote_registration_address listener_scan1查看scan监听的远程注册地址, 可以看到scan监听的远程注册地址为169.254.7.254

这时我们再重新回到之前检查scan监听的日志错误以及白名单的配置,为啥会出现注册节点haip 169.254.31.131被拒绝的情况,就是因为白名单里面只配置了业务网段xxx.xxx.3.*,但没有加入haip网段169.254.*.*,导致节点二通过haip注册节点一的scan 监听时被拒绝

Incoming connection from 169.254.31.131 rejected

TNS-12546: TNS:permission denied

TNS-12560: TNS:protocol adapter error

TNS-00516:Permission denied

问题解决

将haip网段169.254.*.*加入白名单的tcp.invited_nodes配置列表里面,然后重启scan监听恢复正常,节点二的实例也能注册到scan 监听里面

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数据库学习日常案例20231218-oracle 19RAC hip远程注册服务到scan listener分析 的相关文章

随机推荐

  • 充电器如何测试?有哪些测试参数?用电源模块自动化测试系统测试需要哪些步骤?

    充电器测试参数 1 输入 输出电压测试 通过万用表或者其它精密测试设备测量充电器的输入 输出电压测试 检测输入 输出电压是否在规定范围内 以免造成设备损坏 2 输入 输出电流测试 测试充电器的输入 输出电流 确保其符合设计要求 提供稳定的输
  • AMBA协议王者归来:揭秘AHB&APB设计奥秘

    AMBA协议已经成为业界的事实标准 因此在市场上有大量可重用的AMBA兼容IP核 IC工程师掌握这些总线 可以更容易地集成来自不同供应商的IP核 降低开发成本 缩短产品上市时间 AMBA 高级微处理器总线架构 定义了高性能嵌入式微控制器的通
  • Todesk突然高速通道使用已结束

    今天使用Todesk直接报出如下错误 好像对于海外用户需要付费购买海外会员 大家有没有什么可以替换的远程控制软件的吗 能分享一下吗
  • 怎么检测DC-DC电源模块稳定性?电源测试系统测试有什么优势?

    DC DC电源模块稳定性测试 稳定性是衡量DC电源模块的重要指标 电源模块的稳定性直接影响着电源产品和设备的工作稳定性 DC DC电源模块的稳定性 可以通过检测输出电压 输出电流 负载 波形 效率等参数来评估 1 静态测试方法 静态测试是通
  • 搭建电子商务网站建设步骤

    随着目前电子商务网站开发技术的迭代 电商网站的交互设计得到了很大程度的提升 可以认为现在的新型的商城平台都呈现出交互效果 那么电子商务网站建设步骤包括什么呢 电子商务网站建设第一步 网站的规划与设计 电子商务网站算是一个比较复杂的系统 电商
  • 如何在Linux系统中删除文件或目录?

    Linux作为流行的操作系统之一 许多公司和组织都在使用Linux来运行其关键业务和服务 例如谷歌 亚马逊和Facebook等 在Linux中 删除文件和目录是基本操作 那么该如何实现这一功能呢 以下是详细的内容 一 使用命令行删除文件 如
  • 渗透测试报告怎么写?

    1 准备好渗透测试记录 测试记录是执行过程的日志 在每日测试工作结束后 应将当日的成果做成记录 虽然内容不必太过细致 但测试的重点必须记录在案 拟检测的项目 使用的工具或方法 检测过程描述 检测结果说明 过程的重点截图 有结果的画面 2 撰
  • 什么是深度学习的无监督学习与有监督学习

    无监督学习 深度学习中的无监督学习方法是一种训练算法 它在没有标注输出的情况下从输入数据中学习模式和特征 这种方法的核心是探索和理解数据的内在结构和分布 而不是通过已知的输出来指导学习过程 无监督学习在深度学习领域有许多不同的形式和应用 以
  • binlog日志,二进制日志的简介

    binlog的bin就暴露了他是二进制的文件 你用vi或者vim是没办法读的 得用专门的方式 比如mysqlbinlog工具 那么binlog其实只要了解几点应该就足够了 Q 首先 binlog记录的是啥呢 A 记录的是数据库的修改过程 注
  • 2023_Spark_实验二十八:Flume部署及配置

    实验目的 熟悉掌握Flume部署及配置 实验方法 通过在集群中部署Flume 掌握Flume配置 实验步骤 一 Flume简介 Flume是一种分布式的 可靠的和可用的服务 用于有效地收集 聚合和移动大量日志数据 它有一个简单灵活的基于流数
  • 2023_Spark_实验二十九:Flume配置KafkaSink

    实验目的 掌握Flume采集数据发送到Kafka的方法 实验方法 通过配置Flume的KafkaSink采集数据到Kafka中 实验步骤 一 明确日志采集方式 一般Flume采集日志source有两种方式 1 Exec类型的Source 可
  • 线性连续控制系统

    线性连续控制系统 可以用线性微分方程表示 形式为 上式中 是被控制量 是系统的输入量 线性定常连续系统 当系数 和 常数时 称为定常系统 线性时变连续系统 当 和 随时间变化时 称为时变系统 线性定常连续系统按照输入量 的变化规律不同 又分
  • PyCharm中缓存有何作用?如何清理?

    在使用pycharm开发软件的过程中 我们经常会遇到卡顿 运行慢等问题 这时第一应对措施就是清理缓存 从而提高效率 那么pycharm如何清理缓存 以下是常用方法介绍 PyCharm缓存的作用 在使用PyCharm进行开发时 PyCharm
  • 推动行业未来的八个数字化转型趋势

    根据 Gartner 最新估计 在2023 年 已有40 的组织把虚拟体验与物理体验结合起来 以提高员工生产力和客户覆盖范围 而到 2024 年 工业企业将通过将自我管理技术与重新设计的运营流程相结合 将运营成本降低 30 到 2025 年
  • 低代码助力全栈开发

    目录 低代码功能展示 1 拖拽式 UI 组件 2 更快的开发速度 3 敏捷原型设计 4 与数据库集成 低代码开发工具正变得日益强大 它正不断弥合着前后端开发之间的差距 对于后端来说 基于低代码平台开发应用时 完全不用担心 前端的打包 部署
  • JavaOOP篇----第三篇

    系列文章目录 文章目录 系列文章目录 前言 一 标识符的命名规则 二 instanceof关键字的作用 三 什么是隐式转换 什么是显式转换 前言 前些天发现了一个巨牛的人工智能学习网站 通俗易懂 风趣幽默 忍不住分享一下给大家 点击跳转到网
  • Linux中动态路由协议有哪些?

    Linux动态路由是一种在Linux操作系统中实现动态路由的机制 动态路由是指路由器能够根据网络的变化自动更新路由表 以实现更高效的数据传输 在Linux中 动态路由可以通过配置路由规则来实现 那么Linux中动态路由协议有哪些 以下是具体
  • kubernetes入门到进阶(2)

    被隔离的进程 一起来看看容器的本质 大家好 我们继续来一起学习k8s 在上一个章节里 我们初步了解了容器技术 在Linux虚拟机里安装了当前最流行的容器docker 还是用了docker ps docker run 等命令简单操作了容器 广
  • 【计算机图形学】PointNet文章的简单理解与运用,点云特征提取

    PointNet论文原文 PointNet Deep Learning on Point Sets for 3D Classification and Segmentation PointNet官方代码是使用tensorflow实现的 Po
  • 数据库学习日常案例20231218-oracle 19RAC hip远程注册服务到scan listener分析

    问题 用户一套Oracle19c RAC集群 出现一个奇怪的现象 通过SCAN IP访问的连接会话都集中在节点一实例 而且用户并没有做任何的节点服务访问去控制会话的连接节点 比如常见的通过集群的高可用服务去控制应用访问连接集中在同一节点 从