请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

BinLog

关于binlog 我有一个疑问 如果我配置binlog文件和Position 服务正常读取binlog的增量 但是我服务突然宕机了 我再次启动服务 他会是一个怎样的情况呢?

正在回答

1回答

张勤一 2019-01-25 18:55:27

同学你好:

    首先,需要知道:监听 Binlog 是一个顺序型的操作。那么,当你指定(配置)了 binlog 文件和 position,那么,宕机或重启之后,就会从当前位置顺序读取,直到最后一个 binlog 文件的最后一个 position。

    举个例子,例如:当前系统中存在的 binlog 文件有 binlog.00001(position:0 ~ 100)、binlog.00002(101 ~ 200)、binlog.00003(201 ~ 300)。

    当代码中指定了 binlog.00002 和 150,那么,程序宕机或重启之后,将会从150位置之后开始读取,直到 binlog.00003 的 300 位置。假如,在宕机或者重启的过程中,又有新的操作,出现了新的 binlog 文件 - binlog.00004(301 ~ 320)。那么,程序会继续读取直到 320。此后,再有新的操作,程序监听到之后,会继续不断的读取。

欢迎随时交流、讨论,也非常感谢同学的支持!

2 回复 有任何疑惑可以回复我~
  • 那不是重复读取了吗,因为服务可能已经跑了一段时间了?
    回复 有任何疑惑可以回复我~ 2019-01-25 19:07:43
  • 张勤一 回复 提问者 qq_触碰不及的光_0 #2
    索引数据是都维护在内存中的,重启或宕机自然也就没有了,不存在重复读取的问题。
    回复 有任何疑惑可以回复我~ 2019-01-25 19:10:33
  • takooya 回复 张勤一 #3
    那索引数据定期的再次维护到数据库和文件中,这是合理的吗??
    回复 有任何疑惑可以回复我~ 2019-03-16 15:24:51
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信