Mik*_*e B 18 mysql replication mysql-5 mysql-5.1 binlog
MySQL 5.1.x | InnoDB | 视窗
我的 mysql 数据目录开始被 bin 日志填满。
我目前在 Windows mysql 服务器中配置了以下设置:
[mysqld]
log-bin
server-id=1
binlog-do-db=foodb1
binlog-do-db=foodb2
expire_logs_days=25
Run Code Online (Sandbox Code Playgroud)
我打算将 expire_logs_days 设置更改为expire_logs_days=10
并退回 mysql 服务。进行此更改后,我希望旧的 bin 日志多久能清除。
这是否仅作为夜间计划任务的一部分完成?或者这应该是立即的?
Rol*_*DBA 32
它将在 mysql 启动时立即处理。
您不必等待 mysql 重新启动。
首先expire_logs_days
在/etc/my.cnf中设置为10
[mysqld]
log-bin
server-id=1
binlog-do-db=foodb1
binlog-do-db=foodb2
expire_logs_days=10
Run Code Online (Sandbox Code Playgroud)
接下来,登录mysql并运行这个
PURGE BINARY LOGS BEFORE (date(now()) + interval 0 second - interval 10 day);
Run Code Online (Sandbox Code Playgroud)
注意查询的日期和时间
mysql> select date(now()) + interval 0 second - interval 10 day;
+---------------------------------------------------+
| date(now()) + interval 0 second - interval 10 day |
+---------------------------------------------------+
| 2012-12-11 00:00:00 |
+---------------------------------------------------+
1 row in set (0.00 sec)
mysql>
Run Code Online (Sandbox Code Playgroud)
因此,PURGE BINARY LOGS命令将删除日期时间戳早于 的所有二进制日志2012-12-11 00:00:00
。
最后,运行这个命令
SET GLOBAL expire_logs_days = 10;
Run Code Online (Sandbox Code Playgroud)
就是这样。安装expire_logs_days不需要重新启动。
至于复制参数,是需要重启。