首页 > 数据库 >MySQL Linux服务器快照克隆引起的binlog日志无法正常删除导致文件系统满

MySQL Linux服务器快照克隆引起的binlog日志无法正常删除导致文件系统满

时间:2022-12-03 11:31:49浏览次数:44  
标签:binlog 快照 删除 MySQL 文件系统 purge mysql 日志

      最近,一个mysql数据库Linux服务器文件系统空间满,查看是binlog消耗绝大部分空间;经了解mysql数据库每天进行全备并删除1天前binlog日志;然而,2022.11.15日开始的binlog均没删除,后续了解到linux服务器被快照克隆,查看mysql错误日志发现2022.11.15日志提示shutdown normal,负责人反馈直接重启操作系统未关闭mysql。由此,猜测克隆时的binlog日志被损坏,mysql识别不到binlog日志,后续的binlog日志无法删除积累直到文件系统空间满。后续处理,2022.12.2当天将2022.11.28之前的binlog移动到其他文件系统,重启mysql时日志提示找不到被移走的binlog日志,使用purge命令指定删除7天前和2022.11.28 00:00:00的日志清理失败,最后purge特定binlog前的日志成功。

      一、问题现象

     文件系统满,mysql无法启动,system-lv_*对应的文件系统为故障文件系统,这里看到的是已经紧急扩了300G,处理故障时可用空间只有48MB。

MySQL Linux服务器快照克隆引起的binlog日志无法正常删除导致文件系统满_mysql

     二、问题分析

    根据经验可能是Mysql binlog日志占用过多空间,查看binlog保留时间为0,此是可疑点。

MySQL Linux服务器快照克隆引起的binlog日志无法正常删除导致文件系统满_linux_02

询问运维人员反馈该mysql备份策略为每天全备并删除一天的binlog日志

MySQL Linux服务器快照克隆引起的binlog日志无法正常删除导致文件系统满_克隆_03

备份软件备份任务提示均是成功的

MySQL Linux服务器快照克隆引起的binlog日志无法正常删除导致文件系统满_linux_04

然而,2022-12-02之前的binlog直到2022-11-15的都存在,这里只显示部分,根据统计一天的binlog有近60G,积累了18天的binlog有一个TB。到这里,备份软件是有问题的,binlog实际没有删除仍然提示成功并且没有预警。

MySQL Linux服务器快照克隆引起的binlog日志无法正常删除导致文件系统满_mysql_05

     后续问题分析,经沟通,该mysql服务器在2022-11-15做过快照克隆,操作直接shutdow -h now关闭主机,mysql 错误日志提示shutdown normal并提示mysqld被force关闭。

MySQL Linux服务器快照克隆引起的binlog日志无法正常删除导致文件系统满_mysql_06

     到此,猜测数据库被异常关闭binlog损坏导致binlog无法正常删除。

     三、问题处理

 将部分日志移动到/home/mysqlbinlog文件夹下,重启mysql提示被移走的binlog找不到

MySQL Linux服务器快照克隆引起的binlog日志无法正常删除导致文件系统满_克隆_07

只能将日志移动回来,指定日期purge清理binlog日志,命令提示成功,但是binlog并没有从文件系统删除。

MySQL Linux服务器快照克隆引起的binlog日志无法正常删除导致文件系统满_克隆_08

指定删除7天前的binlog进行purge清理,命令提示成功,但是binlog并没有从文件系统删除。

MySQL Linux服务器快照克隆引起的binlog日志无法正常删除导致文件系统满_文件系统_09

指定特定的binlog方式purge之前的所有binlog日志,命令提示成功,文件系统释放成功

MySQL Linux服务器快照克隆引起的binlog日志无法正常删除导致文件系统满_mysql_10

MySQL Linux服务器快照克隆引起的binlog日志无法正常删除导致文件系统满_文件系统_11

再次执行清理2022-11-30之前的binlog日志,能够成功清理

MySQL Linux服务器快照克隆引起的binlog日志无法正常删除导致文件系统满_重启_12

清理完binlog日志后,重启mysql正常

MySQL Linux服务器快照克隆引起的binlog日志无法正常删除导致文件系统满_重启_13

   四、总结

    mysql及其附属主机维护,主机关闭前一定要正常将mysql关闭掉;

    mysql开启binlog时一定要设置expire_logs_days参数;

    备份软件需要改进,不能只凭purge命令返回结果就任务操作执行完成成功,还需要实际判断文件系统空间用量释放情况。



标签:binlog,快照,删除,MySQL,文件系统,purge,mysql,日志
From: https://blog.51cto.com/u_3557740/5908504

相关文章

  • Mysql基础
    1.数据库相关概念以前我们做系统,数据持久化的存储采用的是文件存储。存储到文件中可以达到系统关闭数据不会丢失的效果,当然文件存储也有它的弊端。假设在文件中存储以下......
  • MySQL
    MySQL管理启动及关闭MySQL服务器Windows系统下在Windows系统下,打开命令窗口(cmd),进入MySQL安装目录的bin目录。启动:cdc:/mysql/binmysqld--console关闭:cdc:/m......
  • mysql 高级
    第1篇高级架构篇第1章Linux环境下MySQL的安装与使用1安装并启动好两台虚拟机掌握克隆虚拟机的操作:mac地址主机名ip地址UUID5字符集的相关操作5.2......
  • MySQL部署时提示Table mysql.plugin doesn’t exist的解决方法
    phpstudy_pro移到其它电脑,删除/data下文件后报错100200100200mysqld:Table'mysql.plugin'doesn'texist2022-12-02T14:44:45.439642Z0[ERROR]Can'topenth......
  • mysql5.7.13-windows 免安装版配置简介及Linux 5.7.31版本安装
    前面的是第一次配置的,可能解决不了问题,可直接跳过,直接看目录,第二次重装的记录,比较全面目录​​第一次装​​​​分割线​​​​第二次重装,遇到的新问题​​​​问题3:Yourpa......
  • MySQL高级SQL语句
    MySQL高级(进阶)SQL语句一、实例准备--制表1.表1mysql-uroot-pabc123usetest;createtablelocation(regionchar(20),store_namechar(20));insertintoloc......
  • mysql高阶语句+视图
    一,高阶语句1.select:显示表格中一个或数个栏位的所有资料格式:SELECT"栏位"FROM"表名";2.where:条件查询格式:SELECT"栏位"FROM"表名"WHERE"条件";嵌套/多条件,......
  • mysql备份与恢复
    一,mysql日志1.mysql日志类型日志类型与作用:1.redo重做日志:达到事务一致性(每次重启会重做)作用:确保日志的持久性,防止在发生故障,脏页未写入磁盘。重启数据库会进行redo......
  • MYSQL主从复制与读写分离
    一,主从复制1.原理主从复制原理:首先主库发送更新事件到从库;然后从库读取更新记录,并执行更新记录;最后使得从库的内容与主库保持一致。2.复制类型基于语句的复制(STAT......
  • MySQL之高可用集群MHA及故障切换
    一,MHA1.MHA概念MHA(MasterHighAvailability)目前在MySQL高可用方面是一个相对成熟的解决方案;在MySQL故障切换的过程中,MHA能做到0~30秒之内自动完成数据库的故障切换操作......