gpt4 book ai didi

mysql - 为什么 mysql INSERT ... ON DUPLICATE KEY UPDATE 会破坏主/主配置上的 RBR 复制

转载 作者:可可西里 更新时间:2023-11-01 07:30:20 26 4
gpt4 key购买 nike

问题是:

  • 2 台 MySQL 5.5 服务器
  • 基于行的复制 + master master
  • 写入在两台服务器上(均处于事件状态)
  • autoinc 技巧(一台服务器奇数,另一台服务器偶数)

我有一张 table

byUserDailyStatistics:

  • id (PK + AUTO INC)
  • 日期
  • 用户名
  • 指标1
  • metric2
  • 唯一(idUser,日期)

所有请求都是

INSERT INTO byEmailDailyStatistics
(date, idUser, metric1, metric2)
VALUES (:date, :user:, 1, 1)
ON DUPLICATE KEY UPDATE
metric1 = metric1 + 1,
metric2 = metric2 +1

有时,复制中断并显示类似的消息

could not execute Write_rows event on table stats.byUserDailyStatistics; Duplicate entry '6447412-2016-01-06' for key 'UNIQUE', Error_code: 1062; handler error HA_ERR_FOUND_DUPP_KEY; the event's master log mysql-bin.035580, end_log_pos 279798813

这个问题的根源是什么?

最佳答案

您正在尝试将相同的 idUser, date 对同时写入您的两个副本。

  1. 一个客户端使用奇数主键写入master1
  2. 在第一次写入同步之前,另一个客户端使用偶数主键写入 master2
  3. 服务器尝试相互同步

在最后一步中,同一对在不同的主键下存在于两个服务器上;不同的行,但辅助唯一键相同。

关于mysql - 为什么 mysql INSERT ... ON DUPLICATE KEY UPDATE 会破坏主/主配置上的 RBR 复制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34769241/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com