mysql主复制错误主/从

koaltpgm  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(385)

我尝试了主复制;作为它的一部分,我首先尝试了主从复制。复制连接是成功的,但是当我在主服务器上进行更改时,从服务器抛出了很多重复错误。
上一个\u sql \u错误:查询中键“primary”的错误“duplicate entry”1576”。默认数据库:“nagiosxi”。查询:插入到XiuAudiLogLoT(LogyTime,Soad,Author,Type,Mead,Enter Advices,Debug)值(2018—05-15 16:34:19),'NigiSi’,' NULL’,32,'CMDSys:Adv[ngiOsAdmin ]对NigoSoCo,'LoalHoal','''复制了一个新的配置席
根据我的理解,主服务器不能覆盖从服务器中的值。正在复制的数据库是应用程序数据库,主数据库和从数据库都会抛出很多错误,因为这些值无法重写。
有人能帮我做主机复制吗。我需要为此编写脚本吗?

nfg76nw0

nfg76nw01#

为了使master或galera安全地使用自动增量,应该使用系统变量 auto_increment_increment 以及 auto_increment_offset 为每个服务器生成唯一的值。
https://mariadb.com/kb/en/library/auto_increment/
auto_increment_increment 两个主机上都有2个。套 auto_increment_offset 在一台服务器上设置为2,在另一台服务器上设置为1(默认值)。
这会导致一台服务器只创建偶数值,而另一台服务器只创建奇数值。它们仍然倾向于按顺序进行,因为如果一台服务器创建1、3、5、7和9,并且在所有这些都已复制之后在另一台服务器上进行下一次插入,那么下一个id将是10。差距是不可避免的,但是任何有经验的dba都会告诉您,不要纠缠于差距。
你应该设置你的 binlog_formatROW 或者 MIXED --不是 STATEMENT --在两台服务器上。如果您正在备份binlog,那么 log_slave_updates 还应启用。如果您有子副本,则它们所连接的主机必须启用此选项。
另外,此时还需要销毁和重建其中一台服务器,因为它们的数据永远不会一致。
master/master的推荐做法是一次只向一台服务器写入数据。您的应用程序可以随意切换,但如果只有一个应用程序被视为可写,那么它是最稳定的。

相关问题