我创建了我的第一个活动:
ALTER EVENT flush_logs_event
ON SCHEDULE EVERY 6 HOUR
COMMENT 'Rotate /var/log/mysql/master-bin*'
DO FLUSH LOGS;
我将它从“12”更改为“6”,因为日志复制的增长速度有多快。我希望它按时间而不是文件大小旋转,以使我更轻松地部署其他从站。
我认为“6 小时”是指 6H00 12H00 18H00 和 24H00。同时我改变了事件我也对/etc/mysql/my.cnf进行了调整:
expire_logs_days=7
然后我做了
systemctl restart mariadb.service
当 MariaDB 重新启动时,master-bin 旋转。它创建了master-bin.000006。当我重新启动 MariaDB 时,大约是 5:21。这是否意味着 master-bin 将在 11:21、17:21 等旋转?
为了全面披露,我还包括:
MariaDB [mysql]> show events \G
*************************** 1. row ***************************
Db: mysql
Name: flush_logs_event
Definer: root@localhost
Time zone: SYSTEM
Type: RECURRING
Execute at: NULL
Interval value: 6
Interval field: HOUR
Starts: 2021-12-09 05:21:23
Ends: NULL
Status: ENABLED
Originator: 1
character_set_client: utf8mb4
collation_connection: utf8mb4_general_ci
Database Collation: utf8mb4_general_ci
谢谢。
不,这意味着“距上次开始 6 小时”。您没有指定任何时间点作为基准 - 并且服务器为此目的使用先前的事件开始时间。
如果您希望在列出的时间触发事件,您必须指定 STARTS 计划选项 - 在这种情况下,指定的值将用作基础。喜欢