前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >MySQL通过mysqldump进行逻辑备份触发DB crash

MySQL通过mysqldump进行逻辑备份触发DB crash

原创
作者头像
Power
发布2025-02-28 21:38:50
发布2025-02-28 21:38:50
7100
代码可运行
举报
运行总次数:0
代码可运行

一、背景阐述

代码语言:javascript
代码运行次数:0
复制
主机环境:CentOS7.X
MySQL版本:5.7.30

业务生产环境中,通过mysqldump对数据库进行逻辑备份是一个非常常见的事情。但是在一次客户报障中,遇到了一个非常奇葩的问题,即,数据库一切正常,只要通过mysqldump对数据库进行备份,MySQL数据库必然crash,并且能够100%复现。通过对MySQL错误日志和服务器系统日志的分析发现MySQL crash之前DB内存使用量暴增,直至OOM。所以我们推测,很有可能是mysqldump操作导致了MySQL数据库内存使用量异常,最终引起DB cash。接着就开始了疯狂的检索和查阅资料,想找到类似案例或者能够通过什么方法去限制mysqldump使用的内存量~

二、问题解决

2.1 资料收集

类似Crash的情况网上的案例并不是非常的对口,直至我们发现了MariaDB的一个已修复BUG:https://jira.mariadb.org/browse/MDEV-20699?focusedCommentId=200706&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-200706

MySQL通过mysqldump进行逻辑备份触发DB crash(图1)
MySQL通过mysqldump进行逻辑备份触发DB crash(图1)

我们通过这篇文章,找到了一个方法,通过设置 stored_program_cache参数来绕过该BUG对数据库mysqldump的影响。MySQL官网对该参数的介绍:https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html

MySQL通过mysqldump进行逻辑备份触发DB crash(图2)
MySQL通过mysqldump进行逻辑备份触发DB crash(图2)

2.2 效果验证

(1)查看stored_program_cache默认值

代码语言:javascript
代码运行次数:0
复制
mysql> show variables like "stored_program_cache";
+----------------------+-------+
| Variable_name        | Value |
+----------------------+-------+
| stored_program_cache | 256   |
+----------------------+-------+
1 row in set (0.01 sec)

(2)临时调整stored_program_cache值为16

代码语言:javascript
代码运行次数:0
复制
mysql> set global stored_program_cache=16;
Query OK, 0 rows affected (0.00 sec)

mysql> show variables like "stored_program_cache";
+----------------------+-------+
| Variable_name        | Value |
+----------------------+-------+
| stored_program_cache | 16    |
+----------------------+-------+
1 row in set (0.00 sec)

(3)再次进行mysqldump备份数据

经测试再次进行mysqldump数据备份时,一切正常,至此mysqldump备份触发DB Crash问题得到解决!!!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、背景阐述
  • 二、问题解决
    • 2.1 资料收集
    • 2.2 效果验证
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档