zoukankan      html  css  js  c++  java
  • 测试expire_logs_days参数

    背景

    我们都知道expire_logs_days控制了清理多少天之前的binlog,但有一些疑问。

    测试前疑问

    1. 这个一天怎么算?
    2. 清理binlog的时机是什么?

    测试结果

    1. 这个一天怎么算?

    假设expire_logs_days=1,即清理1天前的binlog,我们有如下binlog

    start time end time
    binlog1 2019-10-08T00:00:00 2019-10-08T03:00:00
    binlog2 2019-10-08T03:00:01 2019-10-09T02:00:00
    binlog3 2019-10-09T02:00:00 2019-10-09T04:00:00
    binlog4 2019-10-09T04:00:01 2019-10-09T05:00:00

    测试在产生 binlog4 的时候会清除 binlog1 ,而产生 binlog3 时并没有清除binlog1

    结论是:

    在 binlog rotate 产生新的 binlog 时,判断前面 binlog 的 end time,而不是 start time。
    如果超过1天了,则清理。
    binlog3 rotate 生成 binlog4 时,时间为2019-10-09T04:00:02。减去 binlog1 的end time大于1天了,所以清理 binlog1。而减去 binlog2 的end time 未到一天,不清理 binlog2。

    2. 清理 binlog 的时机是什么?

    根据前面表格测试的结论,清理 binlog 的时机是产生新 binlog 的时候。
    在binlog3持续的时间,2019-10-09T02:00:00 ~ 2019-10-09T04:00:00,中途达到 2019-10-08T03:00:00 这个过期时间,但 binlog1 一直没有被清理。直到刷新出 binlog4 时才触发清理 binlog,清除掉 binlog1。

    总结:

    • 重启 mysqld
    • binlog 写满(根据参数 max_binlog_size,默认 1G)
    • flush logs/flush binary logs

    以上三种行为都会触发 binlog rotate,产生新 binlog,从而根据参数 expire_logs_days 设置,清理过期 binlog。

  • 相关阅读:
    SDN期末作业验收
    SDN第五次上机作业
    SDN第四次作业
    SDN第四次上机作业
    SDN第三次上机
    SDN第三次作业
    第二次SDN上机作业
    SDN第二次作业
    SDN第一次上机作业
    SDN第一次作业
  • 原文地址:https://www.cnblogs.com/fander/p/11635925.html
Copyright © 2011-2022 走看看