mysql主从不同步,部分表中的数据没有在从库中同步

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql主从不同步,部分表中的数据没有在从库中同步相关的知识,希望对你有一定的参考价值。

mysql主从不同步,部分表中的数据没有在从库中同步,查看show slave status\G,
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
都是ok的,有的表同步没问题,有一个list表就不行。数据库压力也不大。

第二点:我从命令行下执行insert操作,从库list表也会同步,但是使用php不行

1. 在有主键或者唯一键的情况下,Slave 重放 Binlog 并不会去比较检索到的记录的每一列是否和BI相同,因此如果 Slave 和 Master 存在数据不一致,会直接覆盖 Slave 的数据而不会报错。
2. 在没有主键或者唯一键的情况下,Hash Scan / Hash Scan Over Index 的执行效率 在理论上分析高于 Table Scan 和Index Scan 。
3. 在没有主键或者唯一键的情况下,Slave 选择的二级索引是第一个所有的列都在 BI 中存在的索引,不一定是 Master 执行计划所选择的索引。
参考技术A 1,通过mysqldump进行全备份,使主从数据同步,slave重新change master到最新的pos
2,你使用php写数据的时候是否有报错,开启下通用日志,监测下slave是否有是接收到这个insert语句本回答被提问者采纳

MySQL主从不同步

1、 show processlist,查看当前连接数,也可以看看有没有执行中的进程
2、 在从库上执行show slave status; 查看seconds_behind_maste的值,有数字表示有主从延时,这个值表示主从同步延时的时间

如果未同步,在从库上执行下列操作:
stop slave;
#表示跳过一步错误,后面的数字可变
set global sql_slave_skip_counter =1;
start slave;

show slave status;

报错信息:Coordinator stopped because there were error(s) in the worker(s). The most recent failure being: Worker 1 failed executing transaction ‘ANONYMOUS‘ at master log mysql-bin.001045, end_log_pos 454708145. See error log and/or performance_schema.replication_applier_status_by_worker table for more details about this failure or others, if any.

报错是1032,没有找到要操作的记录,有时候会出这个报错,原因是开启了并行复制,先关闭并行复制 重启复制就可以了,然后再打开并行复制。

解决方法

stop slave;
set global slave_parallel_workers=0;
start slave;
恢复后,可以改回来或者保持不修改
stop slave;
set global slave_parallel_workers=8;
start slave;

以上是关于mysql主从不同步,部分表中的数据没有在从库中同步的主要内容,如果未能解决你的问题,请参考以下文章

MySQL主从不同步

怎样查看mysql主从是不是同步

Mysql主从复制方式以及可能出现的问题

mysql主从同步双yes但是有些表数据不同步

MySQL主从库为什么会出现同一条数据的某个字段不一致?

使用XtraBackup热备份搭建MySQL主从同步