MySQL的本地日志(Binlog)是一种记录MySQL数据库所有更改操作的日志文件,可用于自行搭建主从架构、订阅数据等。本文介绍如何查看或删除RDS MySQL实例的本地日志(Binlog)。
本地日志与日志备份区别
对比项 | 本地日志(Binlog) | 日志备份 |
概述 | 用于自行搭建主从架构、订阅数据等。 | 开启日志备份功能后,本地日志会实时上传(复制)到备份空间,形成日志备份。基于日志备份,您可以恢复数据到备份保留时间内的任意时间点。更多信息,请参见RDS MySQL日志备份。 |
开启/关闭 | 默认开启,无法关闭。 | 支持开启或关闭。 |
费用 | 不涉及费用。 | 开启日志备份不收费,备份有免费额度,仅当数据备份和日志备份的总大小超过免费额度时,收取备份费用。 |
存储空间 | 占用实例存储空间。 您可在实例基本信息页面的使用量统计区域查看存储空间大小。 | 不占用实例存储空间。 说明 日志备份存放于备份空间,备份空间不对外开放访问。您可在实例基本信息页面的使用量统计区域查看日志备份大小。 |
本地日志生成规则
RDS MySQL实例实时生成本地日志(Binlog),生成规则取决于实例系列:
基础系列、集群系列、高可用系列:当一个Binlog文件的大小超过512 MB,或者写入超过6小时时,系统会自动切换到下一个序号的Binlog文件并继续写入。
三节点企业系列:当一个Binlog文件的大小超过512 MB时,系统会自动切换到下一个序号的Binlog文件并继续写入。
Binlog文件可能小于512 MB,例如由于命令的执行、系统重启等原因。Binlog文件可能大于512 MB,例如在执行大事务时,要等到大事务完成才能进行Binlog切换。
查看本地日志
本地日志(Binlog)不支持在RDS控制台查看,仅支持通过SHOW BINARY LOGS;
命令查看。更多信息,请参见云数据库RDS MySQL版远程获取Binlog日志并解析Binlog日志。
查看本地日志大小
访问RDS实例列表,在上方选择地域,然后单击目标实例ID。
在左侧导航栏选择监控与报警,查看日志空间使用量。
说明主节点和从节点的Binlog大小在正常情况下默认是一致的,但由于一些原因(例如,主从延迟、Binlog dump延迟、DTS迁移任务或从节点仍在读取应用日志等),可能会导致主、从节点的Binlog大小不一致。
删除本地日志
删除本地日志会释放其占用的本地存储空间。
删除本地日志不会减少日志备份的大小,也不影响实例的按时间点恢复功能(按时间点恢复功能基于日志备份)。
自动删除本地日志
访问RDS实例列表,在上方选择地域,然后单击目标实例ID。
在左侧导航栏选择备份恢复。
选择备份策略页签,编辑本地日志保留策略,本地日志被自动删除的规则如下:
触发项
触发条件
默认值
触发操作
保留时长
备份保留时长超过设定的保留时长。
3小时
超过保留时长的本地日志(Binlog)文件,当被备份后(需开启日志备份功能),会被自动清理。
最大存储空间占有率
存储空间占有率超过设定的最大存储空间占有率。
说明存储空间占用率=本地日志(Binlog)文件大小/实例总可用存储空间大小。
30%
自动删除最早的本地日志(Binlog)文件,直至空间占用率低于设定比例。
文件保留个数
本地日志文件数超过设置的文件保留个数。
60
自动删除最早的本地日志(Binlog)文件,直至本地日志文件数低于设定的文件保留个数。
可用存储空间
实例总存储空间占用率超过80%或者剩余空间不足5 GB。
-
自动删除最早的本地日志(Binlog)文件,直至总空间占用率低于80%且剩余空间大于5 GB。
手动删除本地日志
访问RDS实例列表,在上方选择地域,然后单击目标实例ID。
在左侧导航栏选择备份恢复。
单击一键上传Binlog,并单击确定。
说明本操作会保留最新的两个本地日志(Binlog)文件并删除其余所有本地日志文件,且该操作有一定延迟,需要等待一段时间才能生效。
RDS实例系列为基础系列时,不支持该操作。
如果本地日志仍未被删除,且在日志管理页面查看到如下错误日志,则可能是因为客户端故障或存在数据订阅任务,需要停止相应的任务。
[Warning] file /home/mysql/data3001/mysql/mysql-bin.069435 was not purged because it was being readby thread number 17126285
一键上传Binlog功能会将本地日志(Binlog)文件上传至OSS,保留的天数等于日志备份保留天数。
(可选)可以登录实例,执行
show binary logs;
命令查看本地日志列表。登录操作,请参见通过DMS登录RDS MySQL。(可选)可以在监控与报警页面查看本地日志大小。
相关操作
您也可以通过API删除本地日志,详情请参见PurgeDBInstanceLog - 清理或收缩RDS实例日志。
如需开启和关闭RDS MySQL实例的日志备份,详情请参见控制台开启或关闭日志备份或ModifyBackupPolicy - 修改实例备份策略。
更多RDS存储空间的常见问题,例如存储空间扩容方法、存储空间占用突升排查方法等,请参见存储空间的常见问题。
常见问题
Q:RDS MySQL的Binlog本地日志如何开启?
A:RDS MySQL的本地日志(Binlog)默认开启,无法关闭。具体详情,请参见管理本地日志(Binlog)。
Q:主、从节点的Binlog文件大小为什么会不一致?
A:主、从节点的Binlog大小默认是一致的,但可能存在如下原因导致主、从节点的Binlog大小不一致。
主节点:主从延迟、Binlog dump延迟或DTS迁移任务仍在进行中等。
从节点:从节点仍在读取应用(apply)日志。
Q:为什么我的本地日志刚生成就被自动删除了?
A:可能是实例的存储空间使用率已经达到80%或剩余空间不足5 GB,此时如果本地日志保留策略中的可用存储空间是开启状态,则本地日志会被清理。建议手动增加存储空间或开启存储空间自动扩容功能,防止存储空间满了以后实例被锁定。