暂无图片
暂无图片
3
暂无图片
暂无图片
暂无图片

Cylance 杀毒软件导致MogDB无法安装启动

原创 高云龙 云和恩墨 2022-09-23
1443

背景

接到在虚拟机安装MogDB数据库失败的需求,使用的安装方式是标准安装(om)方式,标准安装方式安装MogDB数据库分两步,第一步是预安装处理(preinstall),第二步是安装数据库实例(gs_install),反馈是preinstall成功了,但是gs_install一直失败,且更换服务器和更换数据库安装包都不行,使用的操作系统是centos 7.9。

分析

得到几个关键信息,服务centos 7.9、虚拟机、preinstall成功、gs_install失败,按着历史经验值,第一步想到的就是服务器缺少cpu指令集,特别是虚拟机服务器上经常会遇到,这个在官方文上数据库安装的环境要求中也有提到。

查看指令集

企业微信截图_b3b455337fb14716b91316e681d04dfb.png
lscpu 命令发现rdtscp 和 bmi2 指令集存在,那会不会是其他原因呢? 需要根据报错进行代码debug,再次执行一下gs_install命令,发现报错发生在gs_initdb初始化数据库的步骤:
企业微信截图_8647203297cc40f6b0dbe63c659efc66.png

查看安装日志

在数据库安装的过程中会有比较详细的响应日志产生,我们看日志信息,发现进程直接退出了
企业微信截图_3f3f1d10e5304fa19616e196845a5bad.png

查看堆栈信息

了解到是initdb过程中进程直接退出了,需要通过查看代码逻辑找到进程退出的原因

--如果没有gdb,需要提前安装好
gdb gs_initdb 
--进入后输入初始化参数
(gdb) r --pgdata=/opt/mogdb/data --nodename=primary --pwpasswd=Enmo@123 --encoding=UTF-8 --locale=en_US.UTF-8

企业微信截图_ff3c11c7588141aa9b92469991d940de.png
这里可以看到在执行mogdb --boot的时候收到了一个信号,然后就退出了,继续查mogdb

gdb mogdb
(gdb) r --boot -x1 -F

企业微信截图_dbf0d2e8560044a9b5163ab0b2e2a721.png
这里发现了cylance,数据库是没有这个的,经查询cylance是一个杀毒软件,也就是说是cylance把mogdb的启动进程给杀了,
我们再次进行验证:

  • cylance关闭,数据库安装成功,且可以正常启动
  • 关闭数据库,开启cylance,再次启动数据库发现启动失败

结果

由此数据库安装部署失败问题已经确认,这个问题是第一次遇到,因为很少会在linux服务器上安装杀毒软件,以后如果遇到类似问题,可以参考此文章排查,然后决定是否要关闭杀毒软件或者更换其他服务器进行安装部署。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
1人已赞赏
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论