资讯专栏INFORMATION COLUMN

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

社区管理员 / 634人阅读

一、背景阐述

主机环境: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

image.png

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

2.2 效果验证

(1)查看stored_program_cache默认值

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

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问题得到解决!!!

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/128147.html

相关文章

  • MySQL数据库运维之数据备份01

    摘要:注意,是大写的示例示例完成服务器上数据库实例的全量备份检查文件是否正常,这步很很很重要。 上篇文章介绍了MySQL主从复制中常见问题排查。在主从复制架构搭建完成之后,需要定期对数据进行备份,本篇文章开始就来介绍MySQL数据库的数据备份与恢复,由于备份及恢复内容较多,分多个小节介绍,本小节先来介绍MySQL数据库备份的相关概念及mysqldump逻辑备份工具。 1、备份类型(1)按照备...

    Simon 评论0 收藏0
  • Linux运维:mysql数据库的备份与恢复

    摘要:运维工程师的日常工作需要对各种数据进行备份,其中数据库数据的备份当属重点之一,为了方便管理,选择哪种备份方案是很重要的。以上版本进行备份恢复及以上的版本用工具会有问题。 运维工程师的日常工作需要对各种数据进行备份,其中数据库数据的备份当属重点之一,为了方便管理,选择哪种备份方案是很重要的。 数据备份种类 全量备份 全量备份就是指对某一个时间点上的所有数据或应用进行的一个完全拷贝。实际应...

    xuexiangjys 评论0 收藏0
  • MySQL性能调优与架构设计(四)—— 备份与恢复

    摘要:前言数据库的备份和恢复一直是工作中最为重要的一部分,也是基本工作之一。任何正式环境的数据库都必须有完整的备份计划和恢复测试,本章内容将主要介绍数据库的备份与恢复相关内容。 前言 数据库的备份和恢复一直是DBA工作中最为重要的一部分,也是基本工作之一。 任何正式环境的数据库都必须有完整的备份计划和恢复测试,本章内容将主要介绍 MySQL数据库的备份与恢复相关内容。 数据库备份使用场景...

    chengjianhua 评论0 收藏0
  • MySql 主从复制及配置实现

    摘要:主从复制是指一台服务器充当主数据库服务器,另一台或多台服务器充当从数据库服务器,主服务器中的数据自动复制到从服务器之中。 一、什么是Mysql主从复制 MySQL主从复制是其最重要的功能之一。主从复制是指一台服务器充当主数据库服务器,另一台或多台服务器充当从数据库服务器,主服务器中的数据自动复制到从服务器之中。对于多级复制,数据库服务器即可充当主机,也可充当从机。MySQL主从复制的基...

    kelvinlee 评论0 收藏0
  • MySQL 备份和恢复机制

    摘要:要定期做备份,备份的周期要充分考虑系统可以承受的恢复时间。基于时间点恢复的操作步骤如果是上午点发生了误操作,可以用以下语句用备份和将数据恢复到故障前跳过故障时的时间点,继续执行后面的,完成恢复。 一、 备份恢复策略 进行备份或恢复操作时需要考虑一些因素: 确定要备份的表的存储引擎是事务型还是非事务型,两种不同的存储引擎备份方式在处理数据一致性方面是不太一样的。 确定使用全备份还是增量...

    snowLu 评论0 收藏0

发表评论

0条评论

社区管理员

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<