哪些原因会导致mysql主从数据不一致

如题所述

1. 在有主键或者唯一键的情况下,Slave 重放 Binlog 并不会去比较检索到的记录的每一列是否和BI相同,因此如果 Slave 和 Master 存在数据不一致,会直接覆盖 Slave 的数据而不会报错。
2. 在没有主键或者唯一键的情况下,Hash Scan / Hash Scan Over Index 的执行效率 在理论上分析高于 Table Scan 和Index Scan 。
3. 在没有主键或者唯一键的情况下,Slave 选择的二级索引是第一个所有的列都在 BI 中存在的索引,不一定是 Master 执行计划所选择的索引。
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-03-07
1.网络的延迟
由于mysql主从复制是基于binlog的一种异步复制,通过网络传送binlog文件,理所当然网络延迟是主从不同步的绝大多数的原因,特别是跨机房的数据同步出现这种几率非常的大,所以做读写分离,注意从业务层进行前期设计。
2.主从两台机器的负载不一致
由于mysql主从复制是主数据库上面启动1个io线程,而从上面启动1个sql线程和1个io线程,当中任何一台机器的负载很高,忙不过来,导致其中的任何一个线程出现资源不足,都将出现主从不一致的情况。
3.max_allowed_packet设置不一致
主数据库上面设置的max_allowed_packet比从数据库大,当一个大的sql语句,能在主数据库上面执行完毕,从数据库上面设置过小,无法执行,导致的主从不一致。
4.key自增键开始的键值跟自增步长设置不一致引起的主从不一致。
5.mysql异常宕机情况下,如果未设置sync_binlog=1或者innodb_flush_log_at_trx_commit=1很有可能出现binlog或者relaylog文件出现损坏,导致主从不一致。
6.mysql本身的bug引起的主从不同步。
7.版本不一致,特别是高版本是主,低版本为从的情况下,主数据库上面支持的功能,从数据库上面不支持该功能。本回答被提问者和网友采纳

MySQL数据不同步原因揭秘mysql不同步的原因
网络延迟是造成数据不同步的最常见的原因。如果两个 MySQL 服务器之间存在很高的网络延迟,那么就可能会造成数据不同步。2. 锁 当一个 MySQL 服务器以写模式访问数据库时,它会对所有需要修改的行进行锁定。如果系统中有多个 MySQL 服务器同时对数据库进行写入,就很容易发生死锁,从而导致数据不同步。3...

MySQL 主从复制数据不一致,怎么办?
若数据同步出现不一致,可能原因在于binlog格式不同。在主服务器上,使用binlog查看命令,以事件方式查看binlog内容,发现插入操作中包含uuid()函数,每次执行结果不同。为解决此问题,将binlog_format设置为ROW格式。修改配置文件,重启主服务器,产生新binlog文件。从机重新连接主服务器,执行相关配置。之...

MySQL 主从 AUTO_INCREMENT 不一致问题分析
原因解析:REPLACE INTO实际操作中,如果表含主键或唯一键,会先删除旧数据再插入,这可能导致从库的auto_increment值未更新。MySQL的binlog记录中,REPLACE INTO被转化为update操作,只有在特定条件下才会反映在从库的auto_increment上。解决方案:升级到MySQL 8.0,自动_increment值会同步更新。日常巡检中...

如何处理MySQL数据不同步的情况mysql不同步的现象
但是,在使用MySQL过程中,由于网络、硬件、软件等因素的影响,有时会出现数据同步不及时或者不一致的情况。为了保证数据一致性和可靠性,必须及时处理MySQL数据不同步的情况。一、检查数据库配置 当MySQL数据发生不同步的情况时,首先要检查数据库配置是否正确。数据库配置包括服务器配置、网络配置、用户权限...

什么情况会导致MySQL主从复制延迟
1.网络的延迟 由于mysql主从复制是基于binlog的一种异步复制,通过网络传送binlog文件,理所当然网络延迟是主从不同步的绝大多数的原因,特别是跨机房的数据同步出现这种几率非常的大,所以做读写分离,注意从业务层进行前期设计。2.主从两台机器的负载不一致 由于mysql主从复制是主数据库上面启动1个io线程...

MySQL 主从,5 分钟带你掌握
主从延迟,其实就是“从库回放” 完成的时间,与 “主库写 binlog” 完成时间的差值, 会导致从库查询的数据,和主库的不一致 。谈到 MySQL 数据库主从同步延迟原理,得从 MySQL 的主从复制原理说起:总结一下主从延迟的主要原因 :主从延迟主要是出现在 “relay log 回放” 这一步,当...

MySQL表无法同步无法实现数据同步mysql不能同步表
解决方案:及时备份数据,并保证备份数据的安全性。在服务器硬件出现故障的情况下,要及时更换硬件并重新安装MySQL,确保数据库能够正常启动。3. MySQL设置不当 MySQL的配置不当也可能导致MySQL表无法同步。例如,如果MySQL的主从复制设置不正确,可能会导致部分数据无法同步,从而影响到数据的一致性和完整性。

mysql远程连接和本地连接,表的数据不一样
是由于数据同步不及时。MySQL服务器使用主从同步的方式进行数据复制和同步,在远程服务器和本地服务器之间同步数据会存在延迟,造成表的数据不一致。

MySQL主从延迟的原因
二、主从延迟的原因 1、IO线程延迟原因 网络延迟:可能因为网络带宽限制,可开启slave_compressed_protocol参数,启用binlog的压缩传输。磁盘IO存在瓶颈:可调整从库双1设置或关闭binlog。网卡存在问题:可通过scp远程拷贝文件测试主机网卡是否存在问题,如有问题则通知主机组修复。一般情况下,IO线程很少存在...

MySQL主从复制中如何避免停库操作mysql不停库做主从
在MySQL主从复制的架构中,主库是负责写入数据的服务器,从库则是负责复制主库数据的服务器。主从复制可以实现数据的备份和读写分离,但是在经验不足或操作失误的情况下,会导致主从复制出现数据不一致或者停库的问题。停库操作是指在主库中执行一些重要的数据更新或者维护操作,如果在停库的过程中从库没...

相似回答