Mariadb
MariaDB 理解“事件”間隔
我創建了我的第一個活動:
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 小時”是指 6H00 12H00 18H00 和 24H00。
不,這意味著“距上次開始 6 小時”。您沒有指定任何時間點作為基準 - 並且伺服器為此目的使用先前的事件開始時間。
如果您希望在列出的時間觸發事件,您必須指定 STARTS 計劃選項 - 在這種情況下,指定的值將用作基礎。像
ALTER EVENT flush_logs_event ON SCHEDULE EVERY 6 HOUR STARTS '2021-12-09 00:00:00' COMMENT 'Rotate /var/log/mysql/master-bin*' DO FLUSH LOGS;