Mariadb

MariaDB 理解“事件”間隔

  • December 10, 2021

我創建了我的第一個活動:

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;

引用自:https://dba.stackexchange.com/questions/303718