MySQL数据库清理Relay_Log_File日志

背景

“Relay_Log_File” 是 MySQL 中用于复制的参数之一。在 MySQL 复制中,当一个服务器作为主服务器(master)时,它会将其更改写入二进制日志文件(binary log file)。而另一个服务器作为从服务器(slave)时,则会从主服务器复制这些更改,并将它们写入中继日志文件(relay log file)。

需求:

  • 搭建的主从复制数据库出现了故障,导致slave异常,同步已经失效。
  • 再次重建主从关系时,发现硬盘被大量的Relay_Log_File文件占满,需要清理并释放空间。
  • Relay_Log_File文件名称如下图:
    在这里插入图片描述
    数据目录/data硬盘空间已经被占用73%
[ptmauser@mysql-0002 data]$ df -h
Filesystem                    Size  Used Avail Use% Mounted on
devtmpfs                       31G     0   31G   0% /dev
tmpfs                          31G   12K   31G   1% /dev/shm
tmpfs                          31G  2.3G   29G   8% /run
tmpfs                          31G     0   31G   0% /sys/fs/cgroup
/dev/mapper/klas-root          93G   54G   40G  58% /
tmpfs                          31G   56K   31G   1% /tmp
/dev/vda1                     2.0G  219M  1.8G  11% /boot
/dev/vda2                    1022M   20K 1022M   1% /boot/efi
tmpfs                         6.2G     0  6.2G   0% /run/user/993
/dev/mapper/datavg-data_lv01  200G  145G   56G  73% /data
tmpfs                         6.2G     0  6.2G   0% /run/user/1000
tmpfs                          60M     0   60M   0% /var/log/rtlog
tmpfs                         6.2G     0  6.2G   0% /run/user/1001

解决:

  • 登录mysql-cli,关闭slave实例,通过reset slave实例清除Relay_Log_File文件。

实际操作

登录MySQL-cli

[ptmauser@mysql-0002 data]$ mysql -uroot -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MySQL connection id is 27
Server version: 5.7.42-log MySQL Community Server (GPL)

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

检查slave状态

MySQL [(none)]> show slave status\G;
*************************** 1. row ***************************
               Slave_IO_State: 
                  Master_Host: 172.22.88.15
                  Master_User: repl
                  Master_Port: 5575
                Connect_Retry: 60
              Master_Log_File: binlog.000097
          Read_Master_Log_Pos: 911621900
               Relay_Log_File: mysql-0002-relay-bin.000002
                Relay_Log_Pos: 148188
        Relay_Master_Log_File: binlog.000005
             Slave_IO_Running: No
            Slave_SQL_Running: No
              Replicate_Do_DB: 
          Replicate_Ignore_DB: 
           Replicate_Do_Table: 
       Replicate_Ignore_Table: 
      Replicate_Wild_Do_Table: 
  Replicate_Wild_Ignore_Table: 
                   Last_Errno: 0
                   Last_Error: 
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 148680
              Relay_Log_Space: 152830684793
              Until_Condition: None
               Until_Log_File: 
                Until_Log_Pos: 0
           Master_SSL_Allowed: No
           Master_SSL_CA_File: 
           Master_SSL_CA_Path: 
              Master_SSL_Cert: 
            Master_SSL_Cipher: 
               Master_SSL_Key: 
        Seconds_Behind_Master: NULL
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error: 
               Last_SQL_Errno: 0
               Last_SQL_Error: 
  Replicate_Ignore_Server_Ids: 
             Master_Server_Id: 0
                  Master_UUID: a90b3d6a-419c-11ee-ab08-fa163e5b8157
             Master_Info_File: /data/data/master.info
                    SQL_Delay: 0
          SQL_Remaining_Delay: NULL
      Slave_SQL_Running_State: 
           Master_Retry_Count: 86400
                  Master_Bind: 
      Last_IO_Error_Timestamp: 
     Last_SQL_Error_Timestamp: 
               Master_SSL_Crl: 
           Master_SSL_Crlpath: 
           Retrieved_Gtid_Set: a90b3d6a-419c-11ee-ab08-fa163e5b8157:8-2042286
            Executed_Gtid_Set: 9553cced-419c-11ee-8f4c-fa163e7c44c3:1-4,
a90b3d6a-419c-11ee-ab08-fa163e5b8157:8-154
                Auto_Position: 0
         Replicate_Rewrite_DB: 
                 Channel_Name: 
           Master_TLS_Version: 
1 row in set (0.000 sec)

ERROR: No query specified

尝试重启slave实例,并检查状态

MySQL [(none)]> start slave;
Query OK, 0 rows affected (0.002 sec)

MySQL [(none)]> show slave status\G;
*************************** 1. row ***************************
               Slave_IO_State: Queueing master event to the relay log
                  Master_Host: 172.22.88.15
                  Master_User: repl
                  Master_Port: 5575
                Connect_Retry: 60
              Master_Log_File: binlog.000101
          Read_Master_Log_Pos: 422443924
               Relay_Log_File: mysql-0002-relay-bin.000002
                Relay_Log_Pos: 148188
        Relay_Master_Log_File: binlog.000005
             Slave_IO_Running: Yes
            Slave_SQL_Running: No
              Replicate_Do_DB: 
          Replicate_Ignore_DB: 
           Replicate_Do_Table: 
       Replicate_Ignore_Table: 
      Replicate_Wild_Do_Table: 
  Replicate_Wild_Ignore_Table: 
                   Last_Errno: 1008
                   Last_Error: Error 'Can't drop database 'db_api_data_manager_yw'; database doesn't exist' on query. Default database: 'db_api_data_manager_yw'. Query: 'DROP DATABASE `db_api_data_manager_yw`'
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 148680
              Relay_Log_Space: 153306313854
              Until_Condition: None
               Until_Log_File: 
                Until_Log_Pos: 0
           Master_SSL_Allowed: No
           Master_SSL_CA_File: 
           Master_SSL_CA_Path: 
              Master_SSL_Cert: 
            Master_SSL_Cipher: 
               Master_SSL_Key: 
        Seconds_Behind_Master: NULL
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error: 
               Last_SQL_Errno: 1008
               Last_SQL_Error: Error 'Can't drop database 'db_api_data_manager_yw'; database doesn't exist' on query. Default database: 'db_api_data_manager_yw'. Query: 'DROP DATABASE `db_api_data_manager_yw`'
  Replicate_Ignore_Server_Ids: 
             Master_Server_Id: 8815
                  Master_UUID: a90b3d6a-419c-11ee-ab08-fa163e5b8157
             Master_Info_File: /data/data/master.info
                    SQL_Delay: 0
          SQL_Remaining_Delay: NULL
      Slave_SQL_Running_State: 
           Master_Retry_Count: 86400
                  Master_Bind: 
      Last_IO_Error_Timestamp: 
     Last_SQL_Error_Timestamp: 231115 13:59:38
               Master_SSL_Crl: 
           Master_SSL_Crlpath: 
           Retrieved_Gtid_Set: a90b3d6a-419c-11ee-ab08-fa163e5b8157:8-2063342
            Executed_Gtid_Set: 9553cced-419c-11ee-8f4c-fa163e7c44c3:1-4,
a90b3d6a-419c-11ee-ab08-fa163e5b8157:8-154
                Auto_Position: 0
         Replicate_Rewrite_DB: 
                 Channel_Name: 
           Master_TLS_Version: 
1 row in set (0.000 sec)

ERROR: No query specified

确认主从关系丢失,已出现了具体的同步报错:

 Last_SQL_Error: Error 'Can't drop database 'db_api_data_manager_yw'; database doesn't exist' on query. Default database: 'db_api_data_manager_yw'. Query: 'DROP DATABASE `db_api_data_manager_yw`'

之后再想办法重建主从关系,本文先清理Relay_Log_File文件。

重置slave实例

在MySQL-cli中关闭slave实例,重置slave实例,MySQL将自动清理硬盘上产生的Relay_Log_File文件。

MySQL [(none)]> stop slave;
Query OK, 0 rows affected (0.001 sec)

MySQL [(none)]> reset slave;
Query OK, 0 rows affected (2.699 sec)

MySQL [(none)]> exit

退出MySQL-cli,验证数据目录及relay_log_file文件。

检查硬盘空间及Relay_Log_File

大量堆积的relay-bin-log被成功自动清除。
在这里插入图片描述

数据目录/data/硬盘空间已经自动清理,使用率重新回到正常数值2%。

[ptmauser@mysql-0002 data]$ df -h
Filesystem                    Size  Used Avail Use% Mounted on
devtmpfs                       31G     0   31G   0% /dev
tmpfs                          31G   12K   31G   1% /dev/shm
tmpfs                          31G  2.3G   29G   8% /run
tmpfs                          31G     0   31G   0% /sys/fs/cgroup
/dev/mapper/klas-root          93G   54G   40G  58% /
tmpfs                          31G   56K   31G   1% /tmp
/dev/vda1                     2.0G  219M  1.8G  11% /boot
/dev/vda2                    1022M   20K 1022M   1% /boot/efi
tmpfs                         6.2G     0  6.2G   0% /run/user/993
/dev/mapper/datavg-data_lv01  200G  2.3G  198G   2% /data
tmpfs                         6.2G     0  6.2G   0% /run/user/1000
tmpfs                          60M     0   60M   0% /var/log/rtlog
tmpfs                         6.2G     0  6.2G   0% /run/user/1001
[ptmauser@mysql-0002 data]$ 

注意:

  1. 避免手动直接删除relay-bin-log文件。
  2. 重置slave实例前,先关闭slave实例。

结束

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/151152.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

阿里云99元VS腾讯云88元,双11云服务器价格战,谁胜谁负?

在2023年的双十一优惠活动中,阿里云推出了一系列令人惊喜的优惠活动,其中包括99元一年的超值云服务器。本文将带您了解这些优惠活动的具体内容,以及与竞争对手腾讯云的价格对比,助您轻松选择最适合的云服务器。 99元一年服务器优…

每日汇评:积极的数据可能会推动澳元/美元的上涨

继 9 月份增加 6700 个就业岗位之后,澳大利亚 10 月份预计将增加 18000 个就业岗位; 失业率预计将从 3.6% 升至 3.7%,维持在历史低点附近; 澳元/美元在美元疲软的支撑下维持看涨基调, 其面临关键阻力位0.6520&#xff…

【Linux】初识网络

目录 背景 协议 什么是协议 协议分层 OSI七层模型 TCP/IP模型 网络协议栈与 OS 的关系 网络传输 局域网中直接通信 数据的封装与分用 局域网通信原理 数据碰撞 跨路由器进行远端通信 IP的介绍 传输演示 背景 🧊一开始,计算机都是一台台独…

Java实现拼图游戏

拼图游戏是一种智力类游戏,玩家需要将零散的拼图块按照一定的规律组合起来,最终拼成完整的图案。拼图游戏的难度可以根据拼图块数量、拼图的形状、图案的复杂程度等因素来调整。这种游戏适合各个年龄层的玩家,能够提高大脑的观察力、空间感知…

WPF xaml Command用法介绍

WPF (Windows Presentation Foundation) 中的命令设计模式是一种用于分离用户界面逻辑和业务逻辑的方法。在WPF中,这种模式通过命令接口(如 ICommand)实现,使得用户界面组件(如按钮、菜单项等)可以触发不直…

工厂自动化中DCS软件

概述 Monitor.Analog是新一代运行监控系统,是物联网时代数据驱动的智能工厂的神经中枢。通过连接到阿自倍尔专有的在线故障预测系统(该系统利用 AI(人工智能))以及利用来自各个智能设备的监控和诊断数据的系统&#x…

Unity Meta Quest 一体机开发(六):HandGrabInteractor 和 HandGrabInteractable 知识点

文章目录 📕教程说明📕HandGrabInteractor⭐HandGrabAPI⭐HandWristPoint⭐GripPoint⭐PinchPoint⭐PinchArea⭐HandGrabVisual⭐HandGrabGlow 📕HandGrabInteractable⭐Support Grab Type⭐Pinch Grab Rules 和 Palm Grab Rules⭐Unselect M…

2023版Idea创建JavaWeb时,右键new没有Servlet快捷键选项

问题:右键时,没有创建servlet的快捷键,如下图: 解决方法: 1.打开idea,点击File>settings(设置),进入settings页面,如下 从上图中的Files选项中没看到有servlet选项,…

拿到信创天翼云电脑账号后,我又傻眼了...

在《面向国产系统的 App 发布,含泪总结》中,我就吐槽过信创产品的不靠谱。用户购买一台终端,都没法用,得经历复杂的账号申请。 紧催慢催,等待了半个月之后,今天终于拿到了账号。然而,满怀期待登…

人工智能+游戏 会带来什么

“人工智能游戏” 写在前面 随着人类生活水平的日益提高,游戏正在为越来越多的人们带去欢乐。同时,作为21世纪新兴科学技术的人工智能,也正在研究人员的努力下不断向前突破。那么,这两列高速前进的“火车”能否接轨并行呢&#…

【数据结构】线段树(点修区查)

数据结构-线段树(点修区查) 前置知识 分治递归二叉树 思路 我们需要维护一个支持单点修改,区间查询的数据结构,并且要求在线,一般使用线段树解决。 线段树是一个二叉树形的数据结构。 线段树的思想很简单&#xff0c…

算法学习打卡day45|动态规划:股票问题总结

Leetcode股票问题总结篇 动态规划的股票问题一共六道题,买卖股票最佳时机和买卖股票手续费都是一个类型的问题,维护好买入和卖出两个状态即可,方法一摸一样。而冷冻期也差不多就是状态多了点,买入、保持卖出、当日卖出、以及冷冻期…

OpenGL_Learn12(光照)

续OpenGL_Learn11(光照)-CSDN博客 1. 镜面高光 和漫反射光照一样,镜面光照也决定于光的方向向量和物体的法向量,但是它也决定于观察方向,例如玩家是从什么方向看向这个片段的。镜面光照决定于表面的反射特性。 我们通…

IDEA没有Add Framework Support解决办法

点击File—>Settings 点击第一个设置快捷键 点击apply和ok即可 我们要点击一下项目,再按快捷键ctrlk 即可

LeetCode(15)分发糖果【数组/字符串】【困难】

目录 1.题目2.答案3.提交结果截图 链接: 135. 分发糖果 1.题目 n 个孩子站成一排。给你一个整数数组 ratings 表示每个孩子的评分。 你需要按照以下要求,给这些孩子分发糖果: 每个孩子至少分配到 1 个糖果。相邻两个孩子评分更高的孩子会获…

Unity反编译:IL2CPP 打包输出的cpp文件和dll(程序集)位置、Mono打包输出的dll(程序集)位置

目录 如题:IL2CPP 打包输出的cpp文件和dll位置(并不会出现在APK里) 如题:Mono打包输出的dll位置 校验平台:Android 如题:IL2CPP 打包输出的cpp文件和dll位置(并不会出现在APK里) Unity Assets同级目录下 Temp/StagingArea/Il2…

Django视图层

视图层 django视图层:Django项目下的views.py文件,它的内部是一系列的函数或者是类,用来处理客户端的请求后处理并返回相应的数据 三板斧 HttpResponse # 返回字符串 render # 返回html页面,并且在返回浏览器之前还可以给html文件…

PCA降维Python demo

读这篇15年CVPR的文章🤣🤣🤣🤣🤣 inproceedings{liu2015sparse,title{Sparse convolutional neural networks},author{Liu, Baoyuan and Wang, Min and Foroosh, Hassan and Tappen, Marshall and Pensky, Marianna},…

第1章 走近Java【深入理解Java虚拟机:JVM高级特性与最佳实践(第三版)】

Java技术体系所包含的内容 Java技术发展的时间线 注释

CFCA国密证书

CFCA是中国金融认证中心的缩写,即China Financial Certification Authority。它是一家经过中国人民银行和国家信息安全机构批准成立的国家级权威安全认证机构,也是国际CA浏览器联盟组织(CA/Browser Forum)的成员,遵循全…