问题描述

填写问题的基础信息。

系统名称

数据库集群

IP地址

xxxxxx

操作系统

Linux

数据库

Oracle 11.2.0.4

症状表现

问题的症状表现如下

4月26号晚22点02分左右,HIS集群发生脑裂,十几分钟后(22.18)一节点集群率先获得集群控制权,

与此同时,一节点向而节点发起了member kill 以及 node kill请求

随后,22.25分二节点以incomplete状态node kill重启集群件,并尝试加入集群

但是遇到了中裁盘不能访问的故障,直到22.37分再次被节点1驱逐

处理过程

处理过程推荐按照时间以列表形式,将处理过程时间点,处理内容。

1、从集群日志来看,最开始的异常时来自二节点的check scan_listener失败,大概在21.59分就发生:

2、查看对应的trace日志,看一下当时为什么check失败了

trace日志显示21.59.42秒对scan的check都还是成功的,59分55秒check出现了timeout。

3、然后接着就是一节点上实例挂了,一节点集群日志显示如下:

查看对应的trace日志发现就是当时的实例挂了,继续查看当时的数据库日志

4、两节点的数据库日志显示如下:

一节点:

二节点:

可以发现在22.02.51左右,二节点向一节点发送一些IPC请求出现timeout情况,过了一会(22.04)一节点实例被二节点驱逐(member kill),这个应该就是本次问题最开始的故障了。

4、继续排查为什么实例会出现IPC Send Timeout原因,注意看当时二节点的IPC Send Timeout进程有很多(不是固定的某一个进程),有Oracle自己的并行进程,还有客户的JDBC连接进程,怀疑这种Timeout问题应该是和私网性能有关,随即查看对应时间私网心跳是否有延迟或者丢包,并未发现异常。但是在一节点服务器上发现对应时间段有大量的packet reassembles failed。

基本可以确认二节点向一节点发送IPC Timeout是由于一节点网络包重组失败造成的。(之前也有类似的案例)

什么是IP packet reassembles failed?

在linux平台使用netstat -s命令时会看到packet reassembles failed项, 记录的是IP重组包失败的累计数据值,什么时候要重组呢?当IP包通信存在碎片时。在网络通信协议中MTU(最大传输单元)限制了每次传输的IP 包的大小,一种是源端和目标端使用了不同的MTU时会交生碎片,这里需要先确认传输过程中的MTU大小配置,确认使用了相同的MTU;还有就是当传送的数据大于MTU时,回分成多个分片传递。这时调整MTU就不可能解决所有的IP包碎片的问题,可以通过加大通信的buffer值,尽可能保留更多的数据在源端拆包,目标端缓存等接收完整后再重组校验。 在LINUX系统中调整BUFFER使用ipfrag_low_thresh 和ipfrag_high_thresh参数,如果调整了这个参数仍有较大的重组失败还可以加大ipfrag_time 参数控制IP 碎片包在内存中保留的秒数时间。

如果在ORACLE RAC环境中一个节点突然产生了大量的数据包输送给另一个节点,如应用设计问题,如数据文件cache fusion或归档只能一个节点访问时,都加大了网络通信量,这里需要检查网络负载及丢包或包不一致的现象,因为ORACLE在网络通信中使用了UDP和IP通信协议,这两类信息都需要关注。

5、为什么一节点上会在对应时间出现大量的网络包失败呢?这一般有以下几个原因:

A.节点之间有流量传输,并且有大量的巨帧包传输。

B.主机、交换机等网络相关参数设置问题。

C.主机CPU、内存资源不足导致。

D.A条件和B条件的相互作用。

条件A:

继续排查出问题前数据库实例内部是否有异常,收集了对应时间段的ash、awr以及addm报告,报告显示对应时间段数据库出现了大量的gc等待事件

gc相关的等待事件一般都是和集群上的热块争用有关,集群上的热块交换依赖于RAC的私网,当出现大量的GC相关等待事件说明当时有一些SQL需要跨界点访问热点数据块,大量热点数据块的传输就满足的条件A。

条件B:

查看主机上的规定reassembles buffer 尺寸的大小,发现如下:

两个节点都是满足最佳实践的要求的,但是如果还是出现大量的packet reassembles faile 问题,可以考虑开启巨帧传输(调整MTU值),当然这个也需要交换机能够支持。

条件C:

通过监控工具,未发现当时一节点主机有CPU\内存不足等问题。

条件D:

有些时候网络流量不大,网络带宽没有跑满的情况下,条件A和条件B的相互作用也会导致大量的packet reassembles failed,就是当网络传输的数据包都通过大量IP分片的方式进行传输,fragmentation rate比较高,那么主机网卡采用较小的MTU值进行传输(接收),当reassembles buffer满,也会出现大量的packet reassembles failed,本次故障中通过监控工具发现是有大量的网络包通过IP分片方式进行传输:

问题原因

问题原因如下

数据库有SQL产生大量的GC等待事件,集群上的热块需要跨节点进行传输,有大量的网络包采用IP分片的方式进行传输,目标端主机不能及时将接收到的巨帧包进行重组,诱发实例间IPC Send Timeout,进而出发集群member kill以及后续的node kill,最后集群需要花费一些时间完成重组。

问题解决

问题解决如下

1、对于容易产生大量GC的SQL尽量在一个节点运行,本次抓到的一些SQL如下:

抓到多个SQL如下:

📎addmrpt_2_78505_78506.txt

主要有如下SQL:

7r5mtbybcggnk	  
一节点执行次数:3347,平均时间1.03秒  ,二节点执行次数131次,平均时间10.71秒                      764wd65m5y2sf	 一节点执行次数:460 ,平均时间 3.69秒,二节点执行次数 453次,平均时间2.06秒

2、如果可以,开启私网心跳巨帧传输(需要交换机硬件支持)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/90287.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/90287.shtml
英文地址,请注明出处:http://en.pswp.cn/bicheng/90287.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

0基础法考随手笔记 02(刑诉法专题04 辩护与代理)

0基础法考随手笔记 02(刑诉法专题04 辩护与代理) 1.值班律师相关权力义务2. 3. 4.什么是强制医疗 注意:为强制医疗指派的律师,是诉讼代理人,不是辩护人,因为此人不会被追究刑事责任。 “强制医疗” 是刑事诉…

HF86611_VC1/HF86611Q_VC1:多通道USB HiFi音频解码器固件技术解析

引言随着音频技术的不断发展,多通道音频处理和多接口兼容性成为现代音频设备的重要需求。本文将介绍一款基于XMOS XU316技术的多通道USB HiFi音频解码器固件——HF86611_VC1/HF86611Q_VC1,这是一款专为多接口HiFi音频应用设计的软件解决方案。产品概述HF…

python---列表(List)

文章目录创建列表基本操作访问元素(索引)切片操作修改列表常用方法列表推导式多维列表列表是 Python 中最基本、最常用的数据结构之一,它是一个有序的可变集合,可以包含不同类型的元素。创建列表 # 空列表 empty_list [] empty_…

ESP32-S3学习笔记<3>:UART的应用

ESP32-S3学习笔记<3>:UART的应用1. 头文件包含2. UART的配置2.1 uart_num的选择2.2 uart_config的设定2.2.1 baud_rate/波特率设置2.2.2 data_bits/数据位数设置2.2.3 parity/奇偶校验位设置2.2.4 stop_bits/停止位设置2.2.5 flow_ctrl/流控位…

【Vue3】加载高德地图案例

官方API:展示地图-入门教程-地图 JS API 2.0 | 高德地图API 1、获取高德Key 参考:准备-地图 JS API 2.0 | 高德地图API 2、创建工程 npm create vitelatest 3、下载依赖集运行项目 npm install npm i amap/amap-jsapi-loader --save npm run dev 4、编写核心…

【工具】Pycharm隐藏侧边灯泡提示

问题描述 在Pycharm中,每行前面很容易出现一个小灯泡,有时候很影响操作,需要将其取消掉设置方法打开设置 按 CtrlAltS 打开设置对话框或者通过菜单 File → Settings(在 macOS 上是 PyCharm → Preferences)导航到外观…

XSS相关理解

由于本人对一小部分dom型xss、原型链污染和存储型xss理解不够透彻,因此在本篇文章中原型链污染和存储型xss偏重进行概念理解或简单的代码理解,随后会慢慢补充 文章目录1 XSS概述1.1 什么是XSS?1.2 XSS主要分三种类型2 XSS基础2.1 XSS基础练习…

Odoo:免费开源的金属制品行业ERP管理软件

引言开源智造Odoo数字化解决方案专家团队意识到,在当今全球市场中,将盈利能力和竞争力最大化的机会促使许多金属制品制造商投资于推进业务发展的新技术。金属制品会计软件是企业用来处理他们业务和增加利润的解决方案。某金属制品加工工艺流程图&#xf…

Ubuntu22.04配置GTest测试框架

前言 鸿蒙系统的代码仓库使用GTest作为单元测试的工具。特性开发时,需要写demo以验证开发思路。因此有必要搭建GTest开发环境配合鸿蒙特性开发做开发demo。 我测试环境是wsl2 Ubuntu22.04 LTS。 搭建过程 安装必备C组件 sudo apt install -y unzip g gcc cmake …

学习日志15 python

1 filter() 函数filter(function, iterable)filter函数是python中的高阶函数, 第一个参数是一个筛选函数, 第二个参数是一个可迭代对象, 返回的是一个生成器类型, 可以通过next获取值。filter() 函数是 Python 内置的高阶函数,其主要功能是对可迭代对象中的每个元素…

Linux 环境下安装 MySQL 8.0.34 二进制 详细教程 附docker+k8s启动

文章目录Linux 环境下安装 MySQL 8.0(二进制)详细教程准备工作安装依赖包下载并解压 MySQL下载 MySQL 二进制包解压 MySQL移动目录并创建 MySQL 用户配置 MySQL配置数据目录与日志目录编辑配置文件 /etc/my.cnf初始化 MySQL 数据库配置启动脚本与环境变量…

HTML ISO-8859-1: 完全解析

HTML ISO-8859-1: 完全解析 引言 ISO-8859-1,又称为 Latin-1,是一种广泛使用的字符编码标准,特别是在HTML文档中。本文将详细介绍ISO-8859-1编码的特点、应用场景以及如何在使用HTML时正确地使用ISO-8859-1编码。 ISO-8859-1编码概述 定义 ISO-8859-1编码是一种单字节编…

c++学习第3篇编辑器——centos7.9.2009系统离线安装clion软件并成功调试c++程序

远程linux服务器安装clion0 前提2个:1 下载CLion-2021.1.1.tar.gz安装包2 上传到linux系统并解压3 修改linux系统里的/etc/ssh/sshd_config文件中的X11UseLocalhost 注释去掉并设为no4 安装xauth5 安装MobaXterm软件并使用ssh组件打开clion5.1 如果打不开clion,报错…

20250722解决在Ubuntu 24.04.2下编译RD-RK3588开发板的Android13出现找不到lz4的问题

20250722解决在Ubuntu 24.04.2下编译RD-RK3588开发板的Android13出现找不到lz4的问题 2025/7/22 15:21缘起:在Ubuntu 24.04.2下编译RD-RK3588开发板的Android13。 报错:/bin/sh: 1: lz4: not found为了简单起见,直接在 荣品的技术支持QQ群的 …

加载用户设置时遇到错误找到一个带有无效“icon“的配置文件。将该配置文件默认为无图标。确保设置“icon“时,该值是图像的有效文件路径“

"C:\Users\Yourname\AppData\Local\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState\settings.json 修改所有icon字段位none 如:{"guid": "{bf61c995-08cc-4a56-b781-5dba411ef19c}","hidden": false,"icon&…

如何提升连带消费?从新零售“人-货-场”模型拆解

目录 一、分析背景 二、新零售分析思路和分析方法 1.具体分析思路 2.分析方法 三、新零售“人-货-场”分析的实操步骤 1.数据收集 2.数据处理 3.图表制作 四、总结 想让线上引来的顾客,在店里多买几件? 连带消费可是实体店赚钱的“秘密武器”&a…

Java异常处理核心原理与最佳实践

Java异常处理核心原理与最佳实践 场景: 你开发的文件处理工具在读取用户上传的文件时突然崩溃,控制台抛出FileNotFoundException。用户的操作被中断,数据丢失。这种糟糕的体验正是异常处理机制要解决的核心问题——如何在程序出错时优雅地恢复…

Ubuntu 安装 Odoo 17 详细教程

Ubuntu 安装 Odoo 17 详细教程 本教程将指导您在 Ubuntu 系统上从源代码安装 Odoo 17。Odoo 是一款功能强大的开源 ERP 和 CRM 软件套件。本教程适用于希望自行配置和管理 Odoo 环境的用户,尤其适合开发者和系统管理员。 教程概述 本教程将涵盖以下步骤&#xff…

鲲鹏·卓识系列2.45G传感器型有源标签:以国产化技术重塑安全监测与人员管理新标准

标题:鲲鹏卓识系列2.45G传感器型有源标签:以国产化技术重塑安全监测与人员管理新标准 随着工业4.0和智慧城市建设的加速推进,安全生产、环境监测和人员管理成为各行业的核心需求。在军事、工业、仓储、能源等领域,温湿度、烟雾、油…

腾讯云推出CodeBuddy:革新AI全栈开发体验

文章目录一、前言二、安装流程三、CodeBuddy 核心功能3.1 AI辅助开发3.2 Coding Design Chat 三大模式3.3 Boost Prompt3.4 Figma 集成3.5 Componen 控件库3.6 Config MCP3.7 Upload Images 图片上传和管理3.8 Preview功能3.9 Deploy 一键部署3.10 项目展示 | MCP生成小红书卡片…