故障案例:定时备份可能引起的问题

场景1:db内存1.5G,业务很少,平时qps不到10,每天凌晨5点到9点内存使用飙升到100%,内存100%时qps有个激增到20,cpu使用率也有激增

解决方法

1 查看缓冲池大小是900M

mysql> show variables like ‘%innodb_buffer_pool_size%‘;

+-------------------------+-----------+

| Variable_name           | Value     |

+-------------------------+-----------+

| innodb_buffer_pool_size | 943718400 |

+-------------------------+-----------+

1 row in set (0.00 sec)

2 查看缓冲池使用率 show engine innodb  status,查看还剩41226*16/1024=644M

Buffer pool size   57599

Free buffers       41226

Database pages     16326

Old database pages 6040

Modified db pages  13

3 因为周期性的原因,查看当时的定时备份时间,发现开始时间正好是晚上5点,确认是db备份引起的

backup_count: 7

backup_begintime: 5

backup_duration: 24

manual_backup_count: 3

4 因为mysqldump前会有一个flush tables with read lock的操作来记录下当前状态show master status,如果当前有查询,这个操作会等待所有当前查询完成后才执行。内存较少,建议客户升级内存,优化慢查询。

场景2:主库在每天凌晨3点,连接数突然从600激增到1200以上,并堆积许多慢查询,持续几个小时,其他监控参数都比较正常

解决方法

1 查看到当时的慢查询均是些简单SQL,SQL语句本身不存在问题

2 查看到主库备份时间为凌晨3点,确定是定时备份引起的

3 因为正好存在从库,后续将定时备份移到从库解决,mysqldump --dump-slave=2

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-22 19:28:48

故障案例:定时备份可能引起的问题的相关文章

MySQL故障案例

第1章 MySQL故障案例: 1.1 背景说明: mysql的架构中没有主从复制的体系,也没有按时进行备份 数据库中有两个库conf库和jira库,仅有一份备份的数据,还是一年前的备份 1.2 故障场景: 意外宕机,导致磁盘物理损坏,也就是说mysql软件程序中data数据目录中的jira文件都没有了 数据库无法启动,经过检查,conf库数据文件都还在,也就是ibd和frm文件都存在 领导要求,conf还是好的,能不能临时先把数据库跑起来,然后想办法修复jira库 1.3 故障环境模拟: 1.3

MySql 定时备份数据库

转载:MySql 定时备份数据库 每天零点备份一次数据库,备份文件放在指定目录(如果目录不存在则新建),按月存储: 将下面这段命令存储为一个 *.bat 文件,添加一个Windows任务计划程序(Task scheduler)指向这个文件,每天执行一次即可. rem ******Code Start*********** @echo off C: CD C:\Program Files\MySQL\MySQL Server 5.7\bin set "Y=%date:~10,4%" se

GitLab 远程 定时备份

原文地址:http://www.cnblogs.com/straycats/p/7672692.html 部署:https://www.cnblogs.com/nethrd/p/9408254.html 升级:https://www.cnblogs.com/nethrd/p/9408290.html  本地备份:https://www.cnblogs.com/nethrd/p/9408330.html  迁移/恢复:https://www.cnblogs.com/nethrd/p/9408388

SqlServer定时备份数据库和定时杀死数据库死锁解决

PS:Sqlserver 2008 R2,windows 8 64位 1.备份数据库 因为要备份,我们就要用到Sqlserver的代理,默认数据库的代理是不开启的.需要我们手动开启的. 执行备份数据库脚本,现在将脚本公布,其实将这一段代码中需要保存的文件路径和数据库名称替换一下就可以实现备份了.但是还没有达到定时备份的目的 ? 1 2 3 4 5 6 7 8 9 10 11 --自动备份并保存最近5天的SQL数据库作业脚本 宋彪 20130310 DECLARE @filename VARCHA

使用Navicat定时备份mysql数据库和创建报表并邮件自动发送

数据库备份在现代计算机高速发展的今日变得日益重要,程序员往往因为不重视而忽略备份数据,导致数据丢失,造成非常严重的后果.定时备份无疑是解决备份的最好的途径,本文主要使用Navicat来自动备份数据库和创建相关的计划任务. (一)使用Navicat自动备份数据库: 1,打开navicat客户端,连上mysql后,双击左边你想要备份的数据库.点击"计划",再点击"新建批处理作业"具体如下图. 2,双击上面的可用任务,它就会到下面的列表里去,也代表你选择了这个任务 3,点

linux下如何实现mysql数据库每天自动备份定时备份

版权声明:本文为 testcs_dn(微wx笑) 原创文章,非商用自由转载-保持署名-注明出处,谢谢. 目录(?)[+] 概述 ??备份是容灾的基础,是指为防止系统出现操作失误或系统故障导致数据丢失,而将全部或部分数据集合从应用主机的硬盘或阵列复制到其它的存储介质的过程.而对于一些网站.系统来说,数据库就是一切,所以做好数据库的备份是至关重要的! 备份是什么? 为什么要备份 容灾方案建设 存储介质 光盘 磁带 硬盘 磁盘阵列 DAS:直接附加存储 NAS:网络附加存储 SAN:存储区域网络 云存

windows下mysql数据库定时备份。

注意:看本教程先必须会windows自带的"任务计划程序". 首先创建一个bat后缀的文件我的是timerExecutePhp.bat文件 timerExecutePhp.bat 这个文件是用来定时执行指定的php文件 timerExecutePhp.bat文件内容: F:\web\php-5.6.22-Win32-VC11-x64\php.exe F:\web\htdocs\demo\timer.php 注释: 1.F:\web\php-5.6.22-Win32-VC11-x64\p

[转]mysql自动定时备份数据库的最佳方法-支持windows系统

网上有很多关于window下Mysql自动备份的方法,可是真的能用的也没有几个,有些说的还非常的复杂,难以操作. 我们都知道mssql本身就自带了计划任务可以用来自动备份,可是mysql咱们要怎么样自动有备份呢? 这个方法是用bat批处理来完成的. 假想环境:MySQL 安装位置:D:\Program Files\MySQL\MySQL Server 5.0\data 如图: 数据库名称为:952game数据库备份目的地:d:\db_bak\ (你想把数据库备份到哪个盘的路径)我想备到D盘的db

shell脚本—根据文件个数定时备份

最近在了解Jenkins时,出现这样一个问题:linux ext3系统目录下的子目录个数不能超过31998个(参考:http://www.xshell.net/linux/1267.html),但jenkins在不停的编译版本时,有时候几个小时就创建了30000多个日志文件夹的目录,从而要随时的清理此文件夹下的目录.于是就写了个脚本来实现自动备份功能.由于很久没有接触过shell,所以花了一天来实现,比较汗颜!主要是对shell的格式,语法之类的不是很了解,在网上找了些资料,边写边调试!废话不多