首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL -基于时间戳查找bin日志位置

问MySQL -基于时间戳查找bin日志位置
EN

Stack Overflow用户
提问于 2016-09-08 08:56:39
回答 1查看 2.1K关注 0票数 1

我使用石子连接器将bin日志更改从mysql集群流到下游数据库系统。

一个集群= MySQL主+主从+次从

当侦听MySQL系统因任何原因而关闭时,其机制是促进从机作为主从,然后继续如常进行。但问题是,bin日志文件和位置与故障机器与新升级的从mysql完全不同。

我能想到的两台机器提交日志之间唯一常见的事情是,timestamp.Even mysqlbinlog实用程序具有使用-开始-日期时间选项设置时间戳的特性。

是否有方法使用给定的时间戳查找mysql日志中的位置?因为上面提到的库只能使用特定的位置,而不能使用时间戳。如果没有,我们应该怎样才能做到这一点。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-11 08:04:52

最好的方法是使用GTID (java支持哪些mysql-binlog-连接器?),但是就像Michael说的那样,它需要5.6+。如果您完全没有办法升级,并且您了解所涉及的风险,那么获得您自己的-开始-日期时间非常简单:

代码语言:javascript
复制
BinaryLogClient binaryLogClient = new BinaryLogClient(...);
binaryLogClient.setBinlogFilename(""); // instructs server to stream events 
// starting from the oldest known binlog
final long start = ...
binaryLogClient.registerEventListener(new BinaryLogClient.EventListener() {
    @Override
    public void onEvent(Event event) {
        if (event.getHeader().getTimestamp() < start) {
            return;
        }
        // process the event here
    }
});
binaryLogClient.connect();

注意: binlog事件的时间戳具有秒精度。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39386623

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档