timestamp时间戳精确到微妙级别,出现bug
自MariaDB5.3版本起,timestamp时间戳精确到微妙级别,但这里存在一个致命bug,它会导致binlog记录的内容损坏,致使闪回恢复功能失效、Canal工具抓取binlog失败。
影响版本MariaDB 5.5/10.0
复现:
我使用的版本为10.0.29-MariaDB-enterprise
Binlog格式为ROW(Mixed不存在此BUG)
创建表结构,注意:timestamp(6),精确到微妙
create table hcy(create_time timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6));
插入数据
insert into hcy(create_time) values(now());
此时我们查看BINLOG文件,如下图所示:
1、时间变成了负数。
2、Corrupted replication event was detected. 检测到复制被损坏。
3、10.0低版本可能会造成主从同步失败。
该bug在MariaDB 10.1版本里修复
官方确认bug地址
https://jira.mariadb.org/browse/MDEV-5377