MYSQL在双MASTER环境中由ROW日志模式带来的数据是否一致

技术MYSQL在双MASTER环境中由ROW日志模式带来的数据是否一致MYSQL在双MASTER环境中由ROW日志模式带来的数据是否一致,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题

关系型数据库在双掌握环境中由排日志模式带来的数据是否一致,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

## 实验环境:双掌握结构

Master1==10.249.160.132

Master2==10.249.160.133

RHEL 5.4 X64,MYSQL 5.1.40

binlog_format=MIXED

tx_isolation=READ-COMMITTED

(这里有一个要点:READ-COMMITTED INNODB,MYSQL强制使用排日志模式)

[@more@]

## 初始化数据

使用测试;

设置名称gbk

如果存在h2,则删除表;

创建表h2 (id int,名称varchar(20),注释varchar(500),主键(id))

引擎=innodb默认字符集=gbk

插入氘值

(1,' h2 ',' h211 '),

(2,' h3 ',' h212 '),

(3,' h4 ',' h213 '),

(4,《H5》,《h214》),

(5,' h6 ',' h215 ');

刷新日志;

## 首先来认识一下,在排模式中,MYSQL是如何记录更新语句的。

比如:更新氘集名称='h-m@2 ',其中id=5;

BINLOG日志里这样记录的:

' BINLOG '

wx3rsxmcaaaaaaawahaaacyaaaaaaabahrlc3 qaamgxaamdwaa8dkadoawy=

wx3rsgcaaaaaaaapqaaak 0 gaaaqacyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aDExNQ==

'/*!*/;

### UPDATE test.h2

###哪里

### @1=5 /* INT meta=0可空=0 is_null=0 */

# # # @ 2=' h6 '/* VARTRING(40)meta=40可空=1 is_null=0 */

# # # @ 3=' h215 '/* VARTRING(1000)meta=1000可空=1 is_null=0 */

### SET

### @1=5 /* INT meta=0可空=0 is_null=0 */

# # @ 2=' h-m @ 2 '/* VARTRING(40)meta=40可空=1 is_null=0 */

# # # @ 3=' h215 '/* VARTRING(1000)meta=1000可空=1 is_null=0 */

#### 我们发现关系型数据库只是记录了字段对应的号码。@1,而不记录具体是哪个字段。 (这正是俺担心的问题)

#### 下面我们用实验来验证一下问题。

####第一步,在Master1,意图是让MASTER2的结构化查询语言在Master1上延时应用。

停止奴隶;

####第二步,在Master2

更新氘集名称='h-m@2 ',其中id=5;

插入氘值(6,' h7@2 ',' dsflk ');

###尚未在Master1上应用

####第三步,在Master1

更改表h2在名字之后添加addr varchar(500);### 这里故障打断原的字段顺序

从氘中选择*;

- - - -

| id | name | addr | comment |

- - - -

| 1 | h2 | NULL | h211 |

| 2 | h3 | NULL | h212 |

| 3 | h4 | NULL | h213 |

| 4 | h5 | NULL | h214 |

| 5 | h6 | NULL | h215 |

- - - -

启动从机;###开始应用来自主控2的结构化查询语言日志

从氘中选择*;

- - - -

| id | name | addr | comment |

- - - -

| 1 | h2 | NULL | h211 |

| 2 | h3 | NULL | h212 |

| 3 | h4 | NULL | h213 |

| 4 | h5 | NULL | h214 |

| 5 | h-m @ 2 | h215 | h215 | # # addr=h215?

| 6 | H7 @ 2 | dsflk | NULL | # # addr=dsflk?

- - - -

####在这里。我们看到了什么?

####列地址,我们没有做任何事情臭虫.它有数据。

####记录6的列注释,应该是dsflk .不是"空"

####第四步,在Master2,有数据看起来没错;

从氘中选择*;

- - - -

| id | name | addr | comment |

- - - -

| 1 | h2 | NULL | h211 |

| 2 | h3 | NULL | h212 |

| 3 | h4 | NULL | h213 |

| 4 | h5 | NULL | h214 |

| 5 | h-m@2 | NULL | h215 |

| 6 | h7@2 | NULL | dsflk |

- - - -

####最后,

Master1和Master2中的数据不再相同。

当然,我们如果在作表结构变更时,把字段都加到最后,是没有这个问题的。

这应该当成是一个病菌处理。提交关系型数据库

还留了一个问题是:MYSQL的应用日志时,是通过什么来匹配行的?主键?还是日志里所列条件都必须匹配。

理论上的答案应该是:主键,(如果没有主键,就是关系型数据库帮你生成的内部主键。) 有兴趣的同学可以自己测试一把。

关于关系型数据库在双掌握环境中由排日志模式带来的数据是否一致问题的解答就分享到这里了,希望

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/106537.html

(0)

相关推荐

  • debug U命令中如何查看指定内存处内容翻译成的指令

    技术debug U命令中如何查看指定内存处内容翻译成的指令debug U命令中如何查看指定内存处内容翻译成的指令,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题

    攻略 2021年11月11日
  • Qt5.14与OpenCV4.5中图片的增强效果是怎样的

    技术Qt5.14与OpenCV4.5中图片的增强效果是怎样的这篇文章给大家介绍Qt5.14与OpenCV4.5中图片的增强效果是怎样的,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一、建立Qt工程1

    攻略 2021年11月29日
  • 抖音刷粉神器电脑版-抖音刷1w赞多少费用

    技术抖音刷粉神器电脑版-抖音刷1w赞多少费用抖音刷粉神器电脑版-抖音刷1w赞多少费用
    第二:虽然最起初是15秒的视频,但还是需要用心去制作和拍摄视频的。
    免费刷颤音粉丝代刷网
    宣传。这里就不多说了,你在这里看到这篇文章,

    测评 2021年11月13日
  • Tomcat9如何实现请求处理

    技术Tomcat9如何实现请求处理这篇文章给大家分享的是有关Tomcat9如何实现请求处理的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。请求处理Tomcat对于HTTP请求,会由Connect

    攻略 2021年12月11日
  • MySQL项目中常用的19条优化方法分别是什么

    技术MySQL项目中常用的19条优化方法分别是什么MySQL项目中常用的19条优化方法分别是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获

    攻略 2021年11月29日
  • HIVE如何统计每个地区最热门的TOP3产品?

    技术HIVE如何统计各个区域下最热门的TOP3的商品小编给大家分享一下HIVE如何统计各个区域下最热门的TOP3的商品,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!环境: hadoop-2

    攻略 2021年12月16日