Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL语句复制-导致重复行的触发器_Mysql_Database Replication - Fatal编程技术网

MySQL语句复制-导致重复行的触发器

MySQL语句复制-导致重复行的触发器,mysql,database-replication,Mysql,Database Replication,我有一个古老的MySQL 5.0主服务器,我们正试图从中迁移。二进制日志已启用,并且正在使用语句复制,直接转到MariaDB 5.5服务器。我有一个带有审计表B的遗留数据库。更新表a后,将其插入表B(…值…)。整行的副本添加到表B中。表B上没有主键 我看到的行为是,slave上的表B比master上的表B多一个数量级的行。当一个更新查询发生时,似乎会生成5个以上的重复行。否则,来自主服务器的所有行将在从服务器上记帐,并且这些行上的数据匹配。这似乎是某种写入放大,触发器在同一事件上重复触发 跨版本

我有一个古老的MySQL 5.0主服务器,我们正试图从中迁移。二进制日志已启用,并且正在使用语句复制,直接转到MariaDB 5.5服务器。我有一个带有审计表B的遗留数据库。更新表a后,将其插入表B(…值…)。整行的副本添加到表B中。表B上没有主键

我看到的行为是,slave上的表B比master上的表B多一个数量级的行。当一个更新查询发生时,似乎会生成5个以上的重复行。否则,来自主服务器的所有行将在从服务器上记帐,并且这些行上的数据匹配。这似乎是某种写入放大,触发器在同一事件上重复触发


跨版本复制可能是问题的一部分

问题是从属服务器正在运行触发器,这会将新行添加到B,并且还从主服务器接收新行的副本。我相信在语句复制中,添加到主服务器上表B中的行不会复制到从服务器上。只有原始SQL语句被传递给从属语句,它独立地触发触发器。即使它们被复制了,我也希望可以预测到行的翻倍,而不是随机的5-9个(或更多)重复。是的,这很令人困惑。希望当它被移植到某个人那里时,他能帮助你。