【YashanDB数据库】数据库运行正常,日志出现大量错误metadata changed

news/2025/3/12 22:28:09/文章来源:https://www.cnblogs.com/YashanDB/p/18345200

问题现象

客户在麒麟kylin v10 sp1环境上部署YashanDB,运行正常, 但是在巡检中发现run.log中有大量错误日志文件metadata changed,需要排查原因

问题单:前置机大量错误日志文件metadata changed,需要排查原因

问题的风险及影响

客户环境为准生产环境,担心影响业务执行。

问题影响的版本

YashanDB版本:22.2.11.100

问题发生原因

YashanDB利用操作系统linotify相关接口做文件设备的监控,范围是:数据文件、redo文件、控制文件、归档日志。

inotify_add_watch() 函数在部分麒麟(kylin v10 sp1)环境上执行结果和CentOS等其他环境不一致,在文件正常的情况下会返回大量的属性变更事件,导致大量错误日志,新版本(22.2.13.100之后)做了防洪规避,避免日志过多掩盖其他信息。

解决方法及规避方式

1、检查相应文件是否有异常。

2、升级到22.2.13.100之后版本。

问题分析和处理过程

检查参数DIAG_ADR_ENABLED,值为TRUE

该参数开启会启动HEATH_MONITOR线程, 做健康检查:

分析日志产生的原因

inotify_add_watch() 是 Linux 系统编程中用于监控文件系统事件的一个系统调用函数,它属于 inotify(Input/Output Notifier)接口的一部分。inotify 是 Linux 内核提供的一种高效、实时的文件系统事件监控机制,允许用户空间程序监控文件或目录的各种变化,如文件创建、删除、修改、移动等。

使用 inotify_add_watch() 监视某个文件或目录,并接收到属性变更(IN_ATTRIB)事件,但查看文件权限时并未发现明显的变化,可能有以下几种情况:

1、隐式属性变更:除了明显的权限(如读、写、执行)变更外,文件属性还包括其他一些可能被修改的元数据,如文件的拥有者、所属组、修改时间、访问时间、扩展属性(xattrs)等。这些属性的变更也可能触发 IN_ATTRIB 事件。请检查这些元数据是否发生了变化。

2、文件系统内部操作:有时,文件系统或底层存储设备可能会进行内部维护操作,如元数据刷新、缓存同步等,这些操作可能导致文件属性看似未变但实际上发生了内部变更,从而触发 IN_ATTRIB 事件。这种情况通常难以从用户层面察觉,但确实会导致事件通知。

3、文件系统挂载选项:如果文件系统是以特定挂载选项挂载的,某些属性变更可能不会立即反映到用户空间。例如,某些网络文件系统(如 NFS)或加密文件系统可能具有缓存属性或延迟写入特性。在这种情况下,虽然内核已经感知到属性变更并触发了 IN_ATTRIB 事件,但在用户空间观察时可能尚未看到变化。您可以尝试刷新文件系统缓存(如使用 sync 或 fsync),或者等待一段时间看属性是否会最终更新。

4、软件或服务干预:某些软件或服务(如备份工具、文件同步服务、权限管理工具等)可能在后台默默地修改文件属性,导致 IN_ATTRIB 事件的发生。检查是否有此类软件或服务正在运行,并确认它们是否可能影响到您监视的文件或目录。

5、编程错误或工具误报:如果您使用的是自编写的代码或第三方工具来检查文件权限,可能存在编程错误或工具本身的误报问题。请确保检查代码逻辑的正确性,或者使用可靠的命令行工具(如 ls -l 或 stat)来验证权限是否确实未变。

6、并发修改:如果多个进程或线程同时对文件进行操作,可能导致属性变更事件与您观察到的权限状态之间存在时间差。确保在接收到事件通知后立即检查权限,以减少并发修改带来的影响。

如果文件属性发生变化, 会触发IN_ATTRIB事件,输出错误日志

inotify_add_watch() 函数在部分麒麟(kylin v10 sp1)环境上执行结果和CentOS等其他环境不一致,在文件正常的情况下会返回大量的属性变更事件,导致大量错误日志。

检查数据库正常,该错误信息可忽略

客户确认数据库运行正常,inotify_add_watch是内核函数,其返回结果和其他系统不一致,新版本做了防洪规避,避免日志过多掩盖其他信息,可升级到新版本。

经验总结

1、YashanDB利用操作系统linotify相关接口做文件设备的监控,范围是:数据文件、redo文件、控制文件、归档日志。

2、inotify_add_watch() 函数在部分麒麟(kylin v10 sp1)环境上执行结果和CentOS等其他环境不一致,在文件正常的情况下会返回大量的属性变更事件,导致大量错误日志,新版本(22.2.13.100之后)做了防洪规避,避免日志过多掩盖其他信息。

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

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

相关文章

外卖霸王餐CPS怎么做,系统怎么选

​ **外卖霸王餐 CPS 做法**:1. 确定目标受众 - 分析哪些人群对外卖霸王餐感兴趣,例如上班族、学生等。 - 了解他们的消费习惯和外卖需求。2. 搭建推广渠道 - 建立微信公众号、小程序或社群。 - 利用社交媒体平台,如抖音、小红书等进行推广。3. 与商家合作 - 寻找…

Spring事务传播性质导致事务失效

this导致事务失效的原因 当我们在一个事务中调用另一个对象的方法时,如果这个方法中使用了this关键字,事务可能会失效。这是因为this关键字代表当前对象的引用,而事务是基于数据库连接的,每个数据库连接有自己的事务上下文。如果在一个事务中调用另一个对象的方法,而这个方…

minio安装(rpm方式)

环境:OS:Centos 71.下载minio下载地址如下wget https://dl.min.io/server/minio/release/linux-amd64/2.安装[root@host135 milvus]# rpm -ivh minio-20240803043323.0.0-1.x86_64.rpm Preparing... ################################# [100%] Updati…

[Redis]主从同步

有备无患--主从同步 很多企业都没有使用 Redis 的集群,但是至少都做了主从。有了主从,当主节点(Master)挂掉的时候,运维让从节点(Slave)过来接管,服务就可以继续,否则主节点需要经过数据恢复和重启的过程,这就可能会拖延很长的时间,从而影响线上业务的持续服务。在了解 …

【YashanDB数据库】VMware虚拟机使用默认安装,在掉电之后数据库无法启动

问题现象 客户使用VMware虚拟机使用默认安装,部署YashanDB个人版,在掉电之后无法启动 操作系统: Virtualization: VMware Operating System: CentOS Linux 7 (Core) CPE OS Name: cpe:/o:centos:centos:7 Kernel: Linux 3.10.0-1160.el7.x86_64 Architecture: x86-64 [yasha…

在 Kubernetes 中部署 Alertmanager

AlertManager 是一个开源警报系统,与 Prometheus 监控系统配合使用。本博客是 Prometheus Kubernetes 教程系列的一部分。在我们之前的文章中,我们研究了以下内容:在 Kubernetes 上部署 Prometheus 部署 Kube State Metrics在本指南中,我将介绍 Alertmanager 设置及其与 Pr…

华为云IoTDA控制台全新升级,来体验35万+开发者使用的平台

摘要:现在体验华为云IoT全新控制台,赢无线耳机等精美好礼 本文分享自华为云社区《华为云IoTDA控制台全新升级,邀您有奖体验!| 云声建议 - 华为云IoTDA专属活动(8月)》,作者:华为IoT云服务。 作为万物上云的物联网底座,华为云IoT物联网平台(设备接入IoTDA)目前接入的…

第三章 栈、队列和数组

栈 栈的基本概念 栈的定义 栈是只允许在一端进行插入或删除操作的线性表栈顶:线性表允许进行插入删除的那一端 栈底:固定的,不允许进行插入和删除的另一端 空栈:不含任何元素的空表栈的操作特性可以概括为:后进先出(LIFO) 栈的基本操作 InitStack(&S)//初始化栈,构…

第二章 线性表

线性表的定义和基本操作 线性表的定义 线性表是具有相同数据类型的n(n≥0)个数据元素的有限序列,其中n为表长,当n=0时线性表是一个空表,若当L命名线性表,则其一般表示为L=(a1,a2,.…,an)ai 是线性表中“第i个”元素线性表中的位序 a1 是表头元素,an 是表尾元素 出第一个…

zabbix“专家坐诊”第250期问答

问题一 Q:乐维监控社区版监控交换机,能统计出端口的IP流量排名吗? A:社区版没有这个功能 ,正式版,流量报表可以实现端口IP流量排行。问题二 Q:我看了一下乐维有事件平台汇总的功能,可以接第三方的告警吗? A:可以的。 Q:有没有操作手册我看看,或者你们是基于什么做的…

uniapp中的websocket的研究,以及相关的封装

官方文档---官方文档写的跟屎一样 https://uniapp.dcloud.net.cn/api/request/websocket.html相关博客 https://www.cnblogs.com/sunnyeve/p/16757633.html

aspnet .core 网站默认不支持文件下载

将txt文件和rar文件都放到 wwwroot 目录下,会发现前者可以正常下载而后者不行。其实是需要在初始化的地方进行设置: builder.WebHost.UseKestrel(option =>{ option.ListenAnyIP(config.Port);}); WebApplication app = builder.Build(); var httpContextAccessor = ap…