mysql从库比主库数据多_mysql 主从复制不一致

在主备复制架构下,mysql5.6默认的复制的方式是SBR(基于SQL语句的复制),如果主从库的上下文不一致(如时间不一样、主从库发生了延迟),使用了sysdate()函数,UUID()函数,user()函数,将出现主库与备库数据不一致。假设备库数据比主库多的情况,进行数据更新,也将产生不一致。

结论:

从下面的实验可以看出,主备复制,复制的方式不推荐使用statement,使用statement,在上下文不一致的情况,会造成主备复制,产生数据不一致。

1、实验环境:

fea4a521a0acf5c330a07dad7ae4e682.png

2、实验一:主从库时间不一样的情况1、主库操作:

(1)查看时间

mysql>select sysdate();

+---------------------+

|sysdate()           |

+---------------------+

| 2015-12-07 13:46:55 |

+---------------------+

1row in set (0.00 sec)

(2)查看使用哪种方式进行复制

mysql>show variables like 'binlog_format';

+---------------+-----------+

|Variable_name | Value     |

+---------------+-----------+

|binlog_format | STATEMENT |

+---------------+-----------+

1row in set (0.00 sec)

STATEMENT表示基于sql语句的复制。

(3)创建表

createtable temporal_test( d DATE,dt DATETIME,t TIME,ts TIMESTAMP);

(4)插入数据

mysql>insert into temporal_test values(sysdate(),sysdate(),sysdate(),sysdate());

QueryOK, 1 row affected, 2 warnings (0.01 sec)

(5)查询结果

mysql> select * from temporal_test;

+------------+---------------------+----------+---------------------+

|d          | dt                  | t        | ts                  |

+------------+---------------------+----------+---------------------+

| 2015-12-07 | 2015-12-07 13:52:33 | 13:52:33 | 2015-12-07 13:52:33|

+------------+---------------------+----------+---------------------+

1row in set (0.00 sec)2、备库操作:

(1)查询当前时间

mysql>select sysdate();

+----------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值