清理数据库二进制日志

使用采集插件采集文章,磁盘占用空间上涨快,删除文章后发现磁盘占用依然很大,最终排查是数据库日志文件太多导致硬盘空间不够,此处记录下。

排查大文件占用

du -sh /* | sort -nr

图片.png

发现是data文件夹太大,进一步排查

du -sh /data/* | sort -nr

图片.png

继续下一阶

du -sh /data/mysql/* | sort -nr

图片.png

最后发现是mysql-bin文件太多太大。

mysql-bin

mysql-bin 是 MySQL 中二进制日志(Binary Log)的默认命名前缀。MySQL 二进制日志是一种记录 MySQL 数据库中更改的二进制文件。它包含了数据库中所有修改的详细信息,例如插入、更新和删除的操作。

二进制日志对于数据库的恢复、复制和高可用性等方面都非常重要。以下是关于 MySQL 二进制日志的一些基本信息:

  1. 二进制日志的文件名:
    • MySQL 二进制日志文件通常以 mysql-bin 作为前缀,后跟一个数字标识符。例如:mysql-bin.000001mysql-bin.000002
    • 数字标识符的增加表示新的二进制日志文件。MySQL 会自动轮转日志文件,生成新的文件。
  2. 二进制日志的作用:
    • 数据恢复: 二进制日志记录了数据库中所有的更改操作,这使得在发生故障时可以使用二进制日志进行数据恢复。
    • 主从复制: 通过配置主从复制,可以将主数据库的更改同步到一个或多个从数据库,实现数据的分布式复制。
    • 数据库备份: 二进制日志可以与数据库快照一起使用,以便在进行完整备份时保留数据库的完整状态。
  3. 相关配置参数:
    • log_bin: 控制是否启用二进制日志。如果设置为 ON,则启用,如果设置为 OFF,则禁用。
    • log_bin_basename: 指定二进制日志文件的基本名称。
    • binlog_format: 指定二进制日志的格式,可以是 STATEMENTROWMIXED。这决定了记录更改的方式。
  4. 查看二进制日志:
    • 使用 SHOW BINARY LOGS; 命令可以查看当前的二进制日志文件列表。
    • 使用 SHOW MASTER STATUS; 命令可以查看当前正在写入的二进制日志文件的信息。
  5. 清理二进制日志:
    • MySQL 会自动轮转二进制日志文件,但你也可以手动清理旧的日志文件。可以使用 PURGE BINARY LOGS 命令来删除指定日期之前的二进制日志文件。

请注意,在进行数据库维护和清理二进制日志时,确保了解你的数据库环境,以避免不必要的数据丢失。

清理二进制日志的影响

执行 PURGE BINARY LOGS 命令会产生一些影响,因此在执行之前需要谨慎考虑。以下是执行该命令可能引起的一些影响:

  1. 主从复制的影响: 如果你的 MySQL 数据库使用主从复制,清理二进制日志可能会影响复制的正常运行。主库生成的二进制日志用于同步到从库,如果清理了一些尚未同步到从库的二进制日志,可能导致从库无法正常同步。在执行 PURGE BINARY LOGS 命令之前,应该确保所有从库都已经成功同步了相关的二进制日志。
  2. 数据恢复的问题: 二进制日志是用于数据库恢复的关键组成部分。如果清理了过多的二进制日志,可能会影响数据库的能力来进行点播和时间点的恢复。在执行清理之前,要确保你不会因为日志清理而失去重要的恢复点。
  3. 延迟备份问题: 在某些情况下,二进制日志还可能用于增量备份。清理了二进制日志可能会影响到这些备份的完整性。如果你依赖于增量备份,要确保清理的二进制日志不会影响到备份的可用性。
  4. 监控和审计问题: 二进制日志可以用于监控数据库中的更改,并用于审计目的。清理了二进制日志可能使这些监控和审计变得更加困难。在执行清理之前,确保你了解这方面的需求。
  5. 备份与恢复的一致性: 在进行备份和恢复时,系统通常依赖于二进制日志来保持备份和数据库状态的一致性。清理了二进制日志可能会破坏这种一致性,因此在执行清理之前,要确保备份和恢复的一致性不会受到影响。

在执行 PURGE BINARY LOGS 命令之前,务必了解你的数据库环境,并确保你在执行该命令之前已经进行了适当的备份。建议在非生产环境进行测试,以确保清理不会引起意外问题。

清除二进制日志

清除所有二进制日志文件可能导致数据恢复和主从复制的问题,因此在执行之前请谨慎操作,并确保你已经进行了必要的备份。以下是清除所有二进制日志的步骤:

  1. 登录到 MySQL 服务器: 使用 MySQL 客户端登录到你的 MySQL 服务器。
    mysql -u root -p

确认是否启用了二进制日志: 执行以下命令确认是否启用了二进制日志。

SHOW VARIABLES LIKE 'log_bin';
  • 如果 log_bin 的值为 OFF,则无需执行 PURGE BINARY LOGS 命令。
  • 查看当前的二进制日志文件: 执行以下命令查看当前的二进制日志文件列表。
    SHOW BINARY LOGS;
  • 记录下列表中的最新的二进制日志文件名,例如 mysql-bin.0000X
  • 执行 PURGE BINARY LOGS 命令: 执行以下命令清除所有二进制日志文件。
    PURGE BINARY LOGS TO 'mysql-bin.0000X';

'mysql-bin.0000X' 替换为你记录下的最新的二进制日志文件名。这个命令将删除在指定日志文件之前的所有二进制日志文件。

如果你希望删除所有的二进制日志,可以使用以下命令:

PURGE BINARY LOGS BEFORE NOW();
  • 这个命令将删除所有早于当前时间的二进制日志文件。
  • 退出 MySQL 命令行: 执行以下命令退出 MySQL 命令行。
    EXIT;

请注意,清除所有二进制日志可能会对主从复制产生影响,因为从服务器可能无法再同步到删除的日志文件。在执行这个操作之前,请确保你了解你的数据库环境,而且已经进行了相应的备份。

备注

主从复制

主从复制(Master-Slave Replication)是数据库系统中的一种数据复制机制,其中一个数据库服务器充当主服务器(Master),而其他一个或多个服务器充当从服务器(Slave)。主服务器上的更改(增删改操作)会被异步地复制到从服务器上,从而使得主服务器和从服务器上的数据保持同步。

主从复制的主要目的之一是提高数据库的可用性、可伸缩性和容错性。以下是一些主从复制的关键概念:

  1. 主服务器(Master): 主服务器是主要处理写操作的服务器。它负责接收来自应用程序的写请求,更新数据库,并将这些更改记录到二进制日志中。
  2. 从服务器(Slave): 从服务器是主要用于读操作的服务器。它定期连接到主服务器,获取主服务器上的二进制日志,并应用这些日志来同步数据。从服务器通常用于负载均衡和故障恢复。
  3. 二进制日志(Binary Log): 主服务器上的二进制日志包含了数据库中的所有更改操作,如插入、更新和删除。从服务器通过读取这些二进制日志来复制主服务器上的更改。
  4. 复制线程(Replication Threads): 主从复制涉及到两个重要的复制线程:
    • 主服务器线程: 负责将主服务器上的更改记录到二进制日志中。
    • 从服务器线程: 负责读取主服务器上的二进制日志,并将这些更改应用到从服务器上。
  5. 延迟(Replication Lag): 由于主从复制是异步的,从服务器上的数据可能不会实时地与主服务器同步。延迟是指从服务器上的数据与主服务器上的数据之间的时间差。

主从复制在数据库管理中有许多用途,包括:

  • 提高读取性能: 通过将读请求分散到多个从服务器上,可以提高系统的读取性能。
  • 故障恢复: 如果主服务器发生故障,可以快速切换到一个从服务器作为新的主服务器,从而减小系统的停机时间。
  • 数据备份: 从服务器可以用于备份,而不影响主服务器的性能。
  • 负载均衡: 将读请求分发到多个从服务器上,可以实现负载均衡,减轻主服务器的负担。

总体而言,主从复制是一种强大的数据库架构,为应对高负载、提高可用性和容错性等问题提供了解决方案。

原创文章,作者:Captain,如若转载,请注明出处:https://www.ormemo.com/1115.html

(0)
Captain
上一篇 08/27/2023
下一篇 11/19/2023

相关推荐

  • TIKTOK不限流VPS整理,TIKTOK外贸VPS

    前言 从2021年9月份开始,据圈子里人说有人将大量VPS的IP段提供给了TIKTOK,TIKTOK公司随即加大了对机房IP的封锁,导致很多在国内运营TIKTOK账号突然出现了0播…

    01/22/2022
  • LNMP/LAMP一键安装脚本整理

    2023/10/09更新: 这几个网站很早之前整理的,最近http://oneinstack.com和http://lnmp.org相继被收购并出现恶意代码,加上宝塔因为后门多一直…

    01/29/2022
  • 日本CN2 GIA VPS整理推荐

    前言 一般日本本土的VPS都是没有做线路优化的,特征是官网域名以.jp结尾。如果需要稳定高速的VPS,那非CN2 GIA线路莫属了。CN2 GIA的全称是ChinaNet Next…

    01/25/2022
  • 用SSR实现通过代理连接Windows远程桌面

    很多人DD windows或者购买了国外windows vps后本地连接远程Windows桌面特别慢还经常掉线,如果能像通过代理访问外面那样流畅,那自然可以像操作本地桌面一样流畅。…

    02/16/2022
  • 2022年Hostwinds最新图文教程

    简介 HostWinds公司成立于2010年,总部位于美国西雅图,主要产品包括,虚拟主机、VPS、独立服务器,其中虚拟主机独享一个IP,VPS实际上是cloud hosting,特…

    01/31/2022
  • 搬瓦工新手图文教程

    前言 搬瓦工是国人最熟悉的VPS之一,很多人玩VPS的启蒙,这里写了图文教程,一步一步,很详细,供小白玩家参考。 简介 搬瓦工隶属于加拿大IT7,成立于2012年,早年因廉价稳定迅…

    01/27/2022
  • 2022年HostDare最新图文教程

    前言 HostDare是2014年开始运营的印度公司,主要针对我国用户推出CN2 GT-QKVM和CN2 GIA-CKVM两种套餐,其中CN2 GIA套餐对电信用户十分友好,是目前…

    02/03/2022
  • 搬瓦工DC9限量款传家宝补货!

    序言 搬瓦工DC9机房断货两年以来近期终于补货了,很长一段时间DC9机房在官网的列表里消失。推测是有些用户未续费,有机器空余出来,所以搬瓦工再次放货。The DC9 Plan只可以…

    03/16/2022
  • 搬瓦工机房介绍

    搬瓦工VPS有14个机房,虽然不是采用的像Vultr云技术,但是仍然可以切换机房,技术不可谓不强,这里简单介绍下搬瓦工机房。 搬瓦工机房介绍 ①US: Los Angeles, C…

    02/13/2022
  • Vultr图文教程

    前言 Vultr作为很多人的入门VPS,有着良好的口碑,尤其在做站方面,稳定,提供众多应用一键安装模板,但是由于英文界面,加上新手很多新手不知道如何去操作,这里写下详细教程,希望可…

    01/26/2022