从我在网上找到的内容中,mysql存储了更改bin日志中数据的语句,然后由slave读取。尚不清楚的是接下来的那些陈述会发生什么?它们是否重播,好像它们发生在从属服务器上一样?
例如,假设在条件中存在当前时间的查询,例如“UPDATE something SET updatedat = NOW()”,并且由于复制延迟,查询在几秒钟后在从属设备处结束。表中的值会不同吗?
或者,如果存在主 - 主复制,则在时间1000,在服务器1上发生以下查询:
UPDATE t SET data = 'old', updatedat = 1000 WHERE updatedat < 1000
在服务器2上的时间1001,发生以下查询:
UPDATE t SET data = 'new', updatedat = 1001 WHERE updatedat < 1001
然后服务器2从服务器1获取复制日志,服务器2上的值将是“旧”?如果是这样,有没有办法避免它?
答案 0 :(得分:2)
例如,假设在条件中存在当前时间的查询,例如“UPDATE something SET updatedat = NOW()”,并且由于复制延迟,查询在几秒钟后在从属设备处结束。表中的值会不同吗?
没有。复制复制该行,这意味着时间将是相同的