主从同步常遇见问题处理

# 在master上更新一条记录,而slave上找不到,丢失了数据

Last_SQL_Error: Could not execute Update_rows_v1 event on table cwsys.cj_dj; Can‘t find record in ‘cj_dj‘, Error_code: 1032; handler error HA_ERR_KEY_NOT_FOUND; the event‘s master log mysql-bin.000376, end_log_pos 83010206

/usr/bin/mysqlbinlog --no-defaults -v -v --base64-output=DECODE-ROWS /oa57_data/master_data/mysql-bin.000376 |grep -A ‘10‘ 83010206

#200330 11:21:47 server id 10  end_log_pos 83010206 CRC32 0x8e49b876     Update_rows: table id 2766 flags: STMT_END_F
### UPDATE `cwsys`.`cj_dj`
### WHERE
###   @1=1882484 /* INT meta=0 nullable=0 is_null=0 */
###   @2=‘收‘ /* STRING(9) meta=65033 nullable=1 is_null=0 */
###   @3=‘银行‘ /* VARSTRING(33) meta=33 nullable=1 is_null=0 */
###   @4=160 /* SHORTINT meta=0 nullable=1 is_null=0 */
###   @5=1580362557 /* TIMESTAMP(0) meta=0 nullable=1 is_null=0 */
###   @6=‘0000-00-00 00:00:00‘ /* DATETIME(0) meta=0 nullable=1 is_null=0 */
###   @7=‘四川飞步科技有限公司‘ /* VARSTRING(765) meta=765 nullable=1 is_null=0 */
###   @8=‘‘ /* VARSTRING(765) meta=765 nullable=1 is_null=0 */
--
# at 83010206
#200330 11:21:47 server id 10  end_log_pos 83010237 CRC32 0xb692b09f     Xid = 10469469
COMMIT/*!*/;
# at 83010237
#200330 11:21:47 server id 10  end_log_pos 83010279 CRC32 0x450704ad     GTID 0-10-82227881 trans
/*!100001 SET @@session.gtid_seq_no=82227881*//*!*/;
BEGIN
/*!*/;
# at 83010279
#200330 11:21:47 server id 10  end_log_pos 83010430 CRC32 0x701e4300     Query    thread_id=1374267    exec_time=0error_code=0
SET TIMESTAMP=1585538507/*!*/;

在slave上,查找下更新后的那条记录,应该是不存在的

select * from cwsys.cj_dj where dj_id=1882484\G

在Master上,有数据

原文地址:https://www.cnblogs.com/Cong0ks/p/12600505.html

时间: 2024-10-09 03:37:17

主从同步常遇见问题处理的相关文章

MySQL主从同步常见报错的解决办法2

报错截图如下:该报错属于SQL线程报错,原因是relay -index.index 和relay-log里面的文件路径对应不上.解决办法: mysql> stop slave;mysql> reset slave;重新指定主库信息mysql> change master tomaster_host="主库ip地址",master_user="授权用户",master_log_file="binlog",master_log_po

mysql主从同步(3)-percona-toolkit工具(数据一致性监测、延迟监控)使用梳理

转自:http://www.cnblogs.com/kevingrace/p/6261091.html 在mysql工作中接触最多的就是mysql replication mysql在复制方面还是会有一些常规问题: 比如主库宕机或者从库宕机有可能会导致复制中断,通常需要进行人为修复, 或者很多时候需要把一个从库提升为主库,但对从库和主库的数据一致性不能保证一样. 这种情况下就需要使用percona-toolkit工具的pt-table-checksum组件来检查主从数据的一致性:如果发现不一致的

关于SQLyog操作Mysql双主、主从同步异常问题

本人遇到的问题发生在mysql 5.6.21 M-M中: Master1 Server version: 5.6.21-enterprise-commercial-advanced-log MySQL Enterprise Server - Advanced Edition (Commercial) Master2 Server version: 5.6.21-enterprise-commercial-advanced-log MySQL Enterprise Server - Advance

Mysql主从同步-概念和原理介绍

Mysql复制概念Mysql内建的复制功能是构建大型高性能应用程序的基础, 将Mysql数据分布到多个系统上,这种分布机制是通过将Mysql某一台主机数据复制到其它主机(slaves)上,并重新执行一遍来实现的.复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器.主服务器将更新写入二进制日志文件,并维护文件的一个索引以跟踪日志循环.这些日志可以记录发送到从服务器的更新.当一个从服务器连接主服务器时,它通知主服务器从服务器在日志中读取的最后一次成功更新的位置.从服务器接收从那时起

mysql主从同步+mycat读写分离+.NET程序连接mycat代理

背景 最近新项目需要用到mysql数据库,并且由于数据量大的原因,故打算采用1主1从(主数据库负责增.删.改操作:从数据库负责查操作)的数据库架构,在实现主从之后还要实现读写分离的代理,在网上搜寻了很久,自己也了解了一些资料,目前有三种代理组件:1.mysql_proxy   2.amoeba   3.mycat   我采用了第3种,选择mycat的原因下面会提到. 部署环境 我在我虚拟机下面装了三台Centos7_x64系统: 1.192.168.8.47 主mysql服务器 2.192.16

MySQL 主从同步(1) - 概念和原理介绍 以及 主从/主主模式 部署记录

Mysql复制概念Mysql内建的复制功能是构建大型高性能应用程序的基础, 将Mysql数据分布到多个系统上,这种分布机制是通过将Mysql某一台主机数据复制到其它主机(slaves)上,并重新执行一遍来实现的.复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器.主服务器将更新写入二进制日志文件,并维护文件的一个索引以跟踪日志循环.这些日志可以记录发送到从服务器的更新.当一个从服务器连接主服务器时,它通知主服务器从服务器在日志中读取的最后一次成功更新的位置.从服务器接收从那时起

主从同步出现一下错误:Slave_IO_Running: Connecting

主从同步出现一下错误: Slave_IO_Running: Connecting Slave_SQL_Running: Yes 解决方法: 导致lave_IO_Running 为connecting 的原因主要有以下 3 个方面: 1.网络不通 2.密码不对 3.pos不对 我敢肯定的并且排除的两个原因 1. 网络原因:在从库上拷贝主库上的备份文件的时候并没有出现任何的错误,因此可以排除. 2. POS 不对:这个我也可以排除,因为在主库上 show maste status 时我记录过了 PO

MYSQL 主从同步故障-Error1062--解决方案

MYSQL 主从同步故障-Error1062-解决方案 公司有两台Mysql服务器之前配置了主从同步,今天用户反映数据有差异,登陆到服务器上查看Mysql主从配置,发现有错误: show slave status \G;  果然出现问题了 Slave_IO_Running: Yes Slave_SQL_Running: No 而且出现了1062错误 Last_SQL_Error: Error 'Duplicate entry '1001-164761-0' for key 'PRIMARY''

redis主从同步原理

redis主从: 作用: 实现数据的实时备份,可用来实现redis的读写分离及redis高可用 主从同步原理: 一主一从环境: 环境:2台redis,一台master一台slave 1,master等待命令进入 2,slave连接master,发送一个sync命令 3,master开始执行BESAVE,并使用缓冲区记录BESAVE之后所执行的所以写命令 4,slave端如果现在有请求进来,可以根据配置项来决定是继续用当前数据做处理客户端的请求还是给客户端返回报错 5,master BESAVE执