电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

MySQL8.0.23 数据库宕机分析

来源:金蝶云社区作者:金蝶2024-09-234

MySQL8.0.23 数据库宕机分析

1. 问题现象

某客户MySQL数据库出现频繁carsh 掉,导致苍穹业务中断。数据库错误日志报错信息如下图所示。


统计最近几天carsh 的次数,1011号当天carsh recovery 10次。

根据报错信息分析mysqld got signal 11,信号量为11为内存段错误。根据以往经验出现这种错误要么是数据文件损坏或者触发了数据库的bug首先我们根据抛出错误中的SQL语句拿到数据库中执行发现是可以正常执行出结果的,哪说明这个表对应的文件是没有损坏的,并且每次carsh 抛出的SQL语句对应的表都不相同,也都可以正常执行,这说明数据文件是没有损坏的。

此时我们就怀疑哪里触发了数据库的bug导致的carsh,计划升级到目前客户稳定运行的8.0.26版本。根据堆栈信息应该是在随机读取数据的时候出错了。

附堆栈对应的源码信息。ha_rnd_next该方法是从存储引擎层随机读取数据。

/**

Read next row via random scan.

@param buf  Buffer to read the row into

@return Operation status

@retval 0     Success

@retval != 0  Error (error code returned)

*/


int handler::ha_rnd_next(uchar *buf) {

int result;

DBUG_EXECUTE_IF("ha_rnd_next_deadlock", return HA_ERR_LOCK_DEADLOCK;);

DBUG_TRACE;

assert(table_share->tmp_table != NO_TMP_TABLE || m_lock_type != F_UNLCK);

assert(inited == RND);


// Set status for the need to update generated fields

m_update_generated_read_fields = table->has_gcol();


MYSQL_TABLE_IO_WAIT(PSI_TABLE_FETCH_ROW, MAX_KEY, result,

{ result = rnd_next(buf); })

if (!result && m_update_generated_read_fields) {

result = update_generated_read_fields(buf, table);

m_update_generated_read_fields = false;

}

table->set_row_status_from_handler(result);

return result;

}


2. 数据库升级

升级数据库到8.0.26checklist

###########################

1.关闭数据库

systemctl stop mysqld


2.备份数据

cp -r mysqldata mysqldata.bak1011   ##大概40min,根据数据量测试评估


3.上传安装包

tar -xvJf mysql-8.0.26-linux-glibc2.12-x86_64.tar.xz -C /home/KDCC/mysql/mysql

ln -s mysql-8.0.26-linux-glibc2.12-x86_64 mysql8.0.26


4.配置启动程序

cp /usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/mysqld.service.bak1011


vim /usr/lib/systemd/system/mysqld.service

ExecStart=/home/KDC

MySQL8.0.23 数据库宕机分析

1. 问题现象某客户MySQL数据库出现频繁carsh 掉,导致苍穹业务中断。数据库错误日志报错信息如下图所示。统计最近几天carsh 的次数,10...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信