mysql主备复制是通过binlog完成的。在开启binlog的情况下,expire_logs_days参数可以让mysql自动清理若干天前的binlog。

那么expire_logs_days是在什么时候生效的呢?初步猜想实在每次产生一个新的binlog的时候去判断一次。查了一下具体的实现,确实是这样的:

源码(5.1.58, log.cc)

int MYSQL_BIN_LOG::rotate_and_purge(uint flags)

{

...

if (!error && check_purge && expire_logs_days)

{

time_t purge_time= my_time(0) - expire_logs_days*24*60*60;

if (purge_time >= 0)

purge_logs_before_date(purge_time);

}

...

}

如果设置了expire_logs_days,每次binlog rotate的时候都去计算一下purge_time(当前时间-expire_logs_days;

这个计算似乎是可以省去的: expire_logs_days是以天为单位,范围是0~99, 0表示不会清理,自然不会进入if块内:),

以99来计算,my_time(0) - 99*24*60*60>=0也是恒真的了),调用purge_logs_before_date(purge_time),

purge_logs_before_date会从log index文件中的第一个binlog文件开始循环: 比较

mysql expire_mysql expire_logs_days是怎么生效和计算出来的相关推荐

  1. mysql expire_mysql expire_logs_days是怎么生效的

    mysql主备复制是通过binlog完成的.在开启binlog的情况下,expire_logs_days参数可以让mysql自动清理若干天前的binlog.那么expire_logs_days是在什么 ...

  2. mysql字段默认值不生效的问题解决(上)

    mysql字段默认值不生效的问题解决(上) 参考文章: (1)mysql字段默认值不生效的问题解决(上) (2)https://www.cnblogs.com/yuhuameng/p/10703931 ...

  3. MySQL用函数统计记录总数_在mysql中使用COUNT 或者SUM函数计算记录总数

    count函数的作用 想要真正的理解count函数,我们就必须明白count函数的作用. 作用一:统计某一列非空(not null)值得数量,即统计某列有值得结果数,使用count(col),其中co ...

  4. mysql 8 expire_logs_days 废弃 启用binlog_expire_logs_seconds设置binlog自动清除日志时间 阿里云RDS暂时不支持

    查看binlog日志相关配置信息 -- 查看binlog日志 show binary logs; -- mysql系统配置中查找 时效 相关配置  show variables like '%expi ...

  5. mysql通过参数文件启动_mysql启动的时参数文件中的[mysql]下的参数没有生效

    my.cnf下的参数如下 [mysqld] 此处省略..... [mysql] #no-auto-rehash prompt='\u@\h:\p\d mysql>' #max_allowed_p ...

  6. mysql 多列索引的生效规则

    mysql中 myisam,innodb默认使用的是 Btree索引,至于btree的数据结构是怎样的都不重要, 只需要知道结果,既然是索引那这个数据结构最后是排好序:就像新华字典他的目录就是按照a, ...

  7. mysql 把表的值用来计算_mysql一张表到底能存多少数据?

    前言 程序员平时和mysql打交道一定不少,可以说每天都有接触到,但是mysql一张表到底能存多少数据呢?计算根据是什么呢?接下来咱们逐一探讨 知识准备 数据页 在操作系统中,我们知道为了跟磁盘交互, ...

  8. mysql读取和写入的峰值_计算MySQL的内存峰值公式

    -- 计算MySQL的内存峰值公式,计算所有的连接满了的情况下: select (@@key_buffer_size + @@query_cache_size + @@tmp_table_size + ...

  9. swoole mysql 无法查询_swoole websocket服务进行mysql断线重连不生效的问题

    代码结构大致是这样的: class server { private $server; private $conn = null; public function __construct() { if ...

最新文章

  1. pyspider爬虫学习-文档翻译-About-Projects.md
  2. boost::overwrite相关的测试程序
  3. linux查看和修改当前系统时间
  4. Linux文件分割命令split笔记
  5. SEO笔记—网页结构优化(四)
  6. 排序算法之----快速排序(快速上手快速排序)
  7. 基于jquery的tab切换
  8. 专业思维和战略思维的区别在哪
  9. 想要做好SEO优化,你必须懂得SEO的核心因素
  10. manjaro设置字体_Manjaro安装配置美化字体模糊发虚解决记录
  11. Python Des加密与解密实现软件注册码、机器码
  12. ATmega128定时器
  13. 思科认证和华为认证哪个更香?
  14. 回到未来2——货币战争
  15. 错误码errno和perror函数
  16. B 站崩了,总结下「高可用」和「异地多活」
  17. 2020PAKDD 阿里巴巴智能运维算法大赛TOP20 ——磁盘故障预测问题比赛思路、难点与问题总结
  18. 超详细的C++冒泡排序(升降)的两种实现方式
  19. vue路由——基础篇(二)
  20. 第12期 《冬温夏清,玉树琼枝》11月刊

热门文章

  1. 帆软中的日期函数,当月第一天,当年第一天,当月最后一天等
  2. 索引的数据结构--MySQL
  3. 太平洋电信首批通过SD-WAN Ready 2.0服务认证
  4. 【DuerOS开发日记】2.打造属于自己的小度(1):使用PythonSDK
  5. 互联网快讯:知乎登陆港交所;极米Z6X Pro、极米H3S超强性能获肯定;华为将发布新款折叠屏手机
  6. 制作商品详情页面案例
  7. Monaco-Editor 多人协作 编辑器
  8. 所谓的Crack大揭秘
  9. Ruoyi 图片上传
  10. 已更新或删除的行值要么不能使该行成为唯一行,要么改变了多个行