【YashanDB知识库】自动选举配置错误引发的一系列问题
问题现象
问题出现的步骤/操作:
配置自动选举,数据库备库手动发起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知识库】自动选举配置错误引发的一系列问题的更多相关文章
- Druid连接池参数maxWait配置错误引发的问题
Druid连接池参数maxWait配置错误引发的问题 1. 背景 数据库服务器(服务部署在客户内网环境)的运行一段时间后,网卡出现了问题,导致所有服务都连接不上数据库,客户把网络恢复之后,反馈有个服务 ...
- Feign 400错误引发的一系列问题
Feign 400错误引发的一系列问题 问题介绍 在使用Feign进行远程调用的时候出现非常奇怪的400错误,错误信息大概如下: feign.FeignException: status 400 re ...
- 由定时脚本错误以及Elasticsearch配置错误引发的Flink线上事故
近期接手离职同事项目,突然遇到线上事故,Flink无法正常聚合数据生成指标. 以下是详细的排查过程: 问题复现 清晨,运维报告Flink数据分析模块无法正常生成指标数据. 赶紧登陆Flink所在机器, ...
- [原] Jenkins Android 自动打包配置
一.Jenkins自动打包配置 目标:1. 自动打包:2. 自动上传:3. 友好下载 1. Jenkins简介 Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作. 减少重复劳 ...
- IIS关于“ 配置错误 不能在此路径中使用此配置节”的解决办法
IIS关于“ 配置错误 不能在此路径中使用此配置节”的解决办法 原文链接:http://www.cnblogs.com/200325074/p/3679316.html 今天刚安装好IIS8.5, 我 ...
- 配置错误 在唯一密钥属性“fileExtension”设置为“.log”时,无法添加类型为“mimeMap”的重复集合项
错误提示: 配置错误 在唯一密钥属性“fileExtension”设置为“.log”时,无法添加类型为“mimeMap”的重复集合项 配置文件 \\?\D:\www\abc\web.config 出现 ...
- 两个由于php.ini配置错误导致的报错:ajax图片上传报错和exec报错
遇到了两个由于php.ini配置错误导致的报错:ajax图片上传报错和exec报错 首先第一个: 在做一个用ajax图片上传的功能中,php报了这样一个错误:File upload error - u ...
- 在centos服务器上配置gitlab钩子引发的一系列问题
为了给公司的服务器上搭建gitlab环境并且配置钩子(实现在本地git push之后服务器自动git pull),整了好久,最后终于把问题解决了,下面是记录安装gitlab之后引发的一系列问题: 首先 ...
- [原] Jenkins Android 自动打包配置(转)
一.Jenkins自动打包配置 目标:1. 自动打包:2. 自动上传:3. 友好下载 1. Jenkins简介 Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作. 减少重复劳 ...
- Jenkins Android 自动打包配置
一.Jenkins自动打包配置 目标:1. 自动打包:2. 自动上传:3. 友好下载 1. Jenkins简介 Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作. 减少重复劳 ...
随机推荐
- 韦东山freeRTOS系列教程之【第九章】任务通知(Task Notifications)
目录 系列教程总目录 概述 9.1 任务通知的特性 9.1.1 优势及限制 9.1.2 通知状态和通知值 9.2 任务通知的使用 9.2.1 两类函数 9.2.2 xTaskNotifyGive/ul ...
- ubuntu20 python3 安装 easysnmp
前言 最近在 ubuntu20 上通过 pip3 安装 easysnmp,安装失败,系统提示:net-snmp/net-snmp-config.h: No such file or directory ...
- Docker 总体架构图解
Docker 的总体架构 Docker 是一个 C/S 模式的架构,后端是一个松耦合架构,模块各司其职. 下图是它的总体架构图: 1. 用户使用 Docker Client 与 Docker Daem ...
- 解决方案 | vbnet的msgbox 窗口最前置,topmost属性设置
For that you can use the TopMost Property of MsgBox (Number 262144) MsgBox("Hello there", ...
- git 怎么将某个开发分支最近几次的提交合并成一次提交
1. 切换到开发分支: git checkout dev 2. 运行交互式 rebase 命令,并指定要合并的提交数量(在这个例子中是最近的3次提交): git rebase -i HEAD~3 3. ...
- [oeasy]python0095_乔布斯求职_雅达利_atari_breakout_打砖块_布什内尔_游戏机_Jobs
编码进化 回忆上次内容 上次 我们回顾了 电子游戏的历史 从 电子游戏鼻祖 双人网球 到 视频游戏 PingPong 再到 街机游戏 Pong 雅达利 公司 来了 嬉皮士 捣乱? 布什内尔 会如何 应 ...
- 微服务:nacos服务注册与发现
服务治理的三个角色: 服务提供者:订阅服务 服务消费者:注册服务 注册中心:记录与监控服务状态,推送服务变更信息.提供者定时发送心跳检测,心跳检测失败,就会向消费者推送变更 提供者通过负载均衡的算法选 ...
- HCIA first
每台电脑都有网线 网线连的是什么? 网线插在接入交换机 流量给入汇聚交换机 汇聚给核心交换机 核心交换机 堆叠是指将一台以上的交换机组合起来共同工作,以便在有限的空间内提供尽可能多的端口.多台交换机经 ...
- docker 具名和匿名挂载
具名和匿名挂载 -v 容器路径! docker run -d -P --name nginx01 -v /etc/nginx nginx -P 随机使用 端口号 docker volume ls 查看 ...
- app专项测试:测试内容
app专项测试:测试内容 除了app的UI功能测试,平时听说比较多的就是app专项测试了, app专项测试主要包含以下内容: 1,流量测试 :app静态测试(耗时.流量.内存.图片大小) 2,弱网测试 ...