问题现象

问题出现的步骤/操作:

  • 配置自动选举,数据库备库手动发起switch over,命令会报错

  • 主、备库变为只读状态,数据库无法进行读写操作

  • shutdown immediate 停止数据库,此时发现数据库一直没有退出,业务人员反馈需要尽快恢复数据库的读写状态

  • kill -9杀死yasdb进程,数据库发生coredump 。重启数据库并使用failover将降备的数据库提升为主库

  • 数据库恢复正常读写状态

相关问题单:数据库使用shutdown immediate无响应,操作系统层面强制停止数据库进程时coredump

问题的风险及影响

客户环境为测试环境,主备库均为只读状态,影响测试业务的开展。

问题影响的版本

YashanDB版本:22.2.10.100

问题发生原因

和现场确认,配置开启了自选举参数HA_ELECTION_ENABLED为TRUE,问题看起来各种诡异,根因都是这个参数配置错误。

该参数是分布式、或者一主多备(3个节点以上)才能配置,2个节点需要使用仲裁选举。可参考文档说明:[自动选举配置 | YashanDB Doc (yasdb.com)]

  • 因为参数设置错误,数据库一直有选举的相关错误,主备状态异常。

  • 在执行shutdown immediate之后,因自动选举数据库被重新拉起,可查看下面截图。

  • 在kill -9杀死进程的时候,触发异常产生coredump。

一直都有选举失败情况:

shutdown,重新拉起并开始接收归档:

解决方法及规避方式

1、一主一备自动选举需要升级到22.2.12.100及以上或23.1版本,可以使用yasboot仲裁选举。

2、22.2.10及以下版本要使用自动选举需要部署一主多备(3个节点或以上)。节点少于3个,不能配置自动选举参数,主备切换使用switchover手动切换。

问题分析和处理过程

1、检查数据库日志,从run.log,可以看到数据库一直在做选举,且选举失败,主备状态一直异常。怀疑是选举参数配置有问题。

2、检查配置参数。发现开启了自选举参数HA_ELECTION_ENABLED为TRUE,该参数在22.2.10.100版本一主一备的情况下不适用。

3、确认core的原因。现场怀疑是kill进程导致undo没回滚完导致core,实际使用killYashanDB 会捕捉相应的信号量做相应的处理,保障可以优雅退出。但是kill -9命令发送的是SIGKILL信号,是一种不可被捕获信号,它强制目标进程立即停止运行,无法让程序优雅地退出。由于数据库有大量的内存、线程、文件句柄,kill -9无法保证资源退出先后顺序,内部资源被破坏,同时系统如果还有其他操作,出core是正常的。

4、core堆栈是在审计的步骤,研发分析发现审计逻辑不严谨,缺少校验(备机不需要审计),优化相应的校验逻辑。

经验总结

1、kill -9无法使YashanDB优雅退出。正常使用shutdown immediate 停止数据库,无法退出可以使用kill(不带-9)

2、22.2.10及以下版本要使用自动选举需要部署一主多备(3个节点或以上)。节点少于3个,不能配置自动选举参数。

3、出现core需要做严谨分析相应的逻辑,完善相应的校验。

【YashanDB知识库】自动选举配置错误引发的一系列问题的更多相关文章

  1. Druid连接池参数maxWait配置错误引发的问题

    Druid连接池参数maxWait配置错误引发的问题 1. 背景 数据库服务器(服务部署在客户内网环境)的运行一段时间后,网卡出现了问题,导致所有服务都连接不上数据库,客户把网络恢复之后,反馈有个服务 ...

  2. Feign 400错误引发的一系列问题

    Feign 400错误引发的一系列问题 问题介绍 在使用Feign进行远程调用的时候出现非常奇怪的400错误,错误信息大概如下: feign.FeignException: status 400 re ...

  3. 由定时脚本错误以及Elasticsearch配置错误引发的Flink线上事故

    近期接手离职同事项目,突然遇到线上事故,Flink无法正常聚合数据生成指标. 以下是详细的排查过程: 问题复现 清晨,运维报告Flink数据分析模块无法正常生成指标数据. 赶紧登陆Flink所在机器, ...

  4. [原] Jenkins Android 自动打包配置

    一.Jenkins自动打包配置 目标:1. 自动打包:2. 自动上传:3. 友好下载 1. Jenkins简介 Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作. 减少重复劳 ...

  5. IIS关于“ 配置错误 不能在此路径中使用此配置节”的解决办法

    IIS关于“ 配置错误 不能在此路径中使用此配置节”的解决办法 原文链接:http://www.cnblogs.com/200325074/p/3679316.html 今天刚安装好IIS8.5, 我 ...

  6. 配置错误 在唯一密钥属性“fileExtension”设置为“.log”时,无法添加类型为“mimeMap”的重复集合项

    错误提示: 配置错误 在唯一密钥属性“fileExtension”设置为“.log”时,无法添加类型为“mimeMap”的重复集合项 配置文件 \\?\D:\www\abc\web.config 出现 ...

  7. 两个由于php.ini配置错误导致的报错:ajax图片上传报错和exec报错

    遇到了两个由于php.ini配置错误导致的报错:ajax图片上传报错和exec报错 首先第一个: 在做一个用ajax图片上传的功能中,php报了这样一个错误:File upload error - u ...

  8. 在centos服务器上配置gitlab钩子引发的一系列问题

    为了给公司的服务器上搭建gitlab环境并且配置钩子(实现在本地git push之后服务器自动git pull),整了好久,最后终于把问题解决了,下面是记录安装gitlab之后引发的一系列问题: 首先 ...

  9. [原] Jenkins Android 自动打包配置(转)

    一.Jenkins自动打包配置 目标:1. 自动打包:2. 自动上传:3. 友好下载 1. Jenkins简介 Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作. 减少重复劳 ...

  10. Jenkins Android 自动打包配置

    一.Jenkins自动打包配置 目标:1. 自动打包:2. 自动上传:3. 友好下载 1. Jenkins简介 Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作. 减少重复劳 ...

随机推荐

  1. Nuxt框架中内置组件详解及使用指南(五)

    title: Nuxt框架中内置组件详解及使用指南(五) date: 2024/7/10 updated: 2024/7/10 author: cmdragon excerpt: 摘要:本文详细介绍了 ...

  2. 洛谷P2658

    我在洛谷第一次发个题解,管理员居然把这题的题解通道关了.... 看到好像没有优先队列的题解,来水一手 思路 形似A* 却不是A* 只需要求出其中一个点到其他点的D系数,所有D系数的最大值即是答案. 数 ...

  3. centos7 扩展硬盘

    新增硬盘后 fdisk -l fdisk /dev/sdb (以后再加改成c) 阿里云叫vdb fdisk -l 注意,最好跟第一块硬盘一样! df -T 查看硬盘分区格式 注意,文件夹不能已存在的! ...

  4. 【Shiro】02 shiro.ini文件分析

    [什么是INI文件?] INI 全称:Initialization File 初始文件 Window系统文件扩展名 Shiro 使用时可以连接数据库,也可以不连接数据库. 当不使用数据库时,需要配置S ...

  5. NVIDIA人形机器人AI套件:NVIDIA Isaac Manipulator 和 NVIDIA Isaac Perceptor

    IsaacManipulator 为机械臂提供了卓越的灵活性和模块化AI功能,并提供了一系列强大的基础模型和GPU加速库.它提供了高达80倍的路径规划加速,零样本感知提高了效率和吞吐量,使开发者能够实 ...

  6. 微软的GitHub Copilot

    随着OpenAI的ChatGPT4 Turbo的发布,基于ChatGPT的Copilot也推出了最新版. ======================================= 帮助文档: h ...

  7. PEP 703作者给出的一种no-GIL的实现——python3.9的nogil版本

    PEP 703的内容是什么,意义又是什么呢? 可以说python的官方接受的no-GIL提议的PEP就是PEP 703给出的,如果GIL帧的从python中移除那么可以说对整个python生态圈将有着 ...

  8. tensorflow1.x——如何在C++多线程中调用同一个session会话

    相关内容: tensorflow1.x--如何在python多线程中调用同一个session会话 ================================================= 从 ...

  9. A100和H100两款NVIDIA顶级双精度浮点数矢量运算芯片被限制对华出口——警醒

    美国东部时间8月31日,NVIDIA公司宣布收到美政府通知停止对中国出口A100和H100两款NVIDIA顶级双精度浮点数矢量运算芯片,并且未来计算性能和数据传输性能高于A100的芯片都将禁止对中国出 ...

  10. [ZJOI2010] 基站选址 题解

    前言 题目链接:洛谷. 题意简述 [ZJOI2010] 基站选址. 有 \(N\) 个村庄坐落在一条直线上,第 \(i\) 个村庄距离第 \(1\) 个村庄的距离为 \(D_i\).需要在这些村庄中建 ...