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)

相关推荐

  • 不胫而走的拼音,成语里最后一个字是走的有哪些

    技术不胫而走的拼音,成语里最后一个字是走的有哪些不胫而走:【基本解释】:没有腿却能跑不胫而走的拼音。比喻事物无需推行,就已迅速地传播开去。【拼音读法】:bù jìng ér zǒu
    【使用举例】:袁伯珍慌忙把家里所

    生活 2021年10月29日
  • 抖音免费涨粉丝网站,抖音涨人气方法介绍?

    技术抖音免费涨粉丝网站,抖音涨人气方法介绍?玩抖音的人应该更关注粉丝的数量。对于普通人来说,粉丝的数量也是用来填满大门的,最多是为了赢得人气。但是对于一些真正了解抖音的人来说,抖音刷粉丝们的这些简单的词汇并没有简单的含义

    测评 2021年10月21日
  • 3岁以上宝宝奶粉推荐,3~6岁儿童喝什么奶粉

    技术3岁以上宝宝奶粉推荐,3~6岁儿童喝什么奶粉3~6岁儿童喝什么奶粉3~6岁儿童喝什么奶粉并没有明确规定,但要符合适合儿童体质3岁以上宝宝奶粉推荐、营养充足、各营养素之间的比例合适的原则。3~6岁儿童正处于生长发育阶段

    生活 2021年11月1日
  • 基于python农作物病害图片识别(pytorch中如何预测医学图像并保存)

    技术Pytorch中如何实现病虫害图像分类本篇文章给大家分享的是有关Pytorch中如何实现病虫害图像分类,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。一、

    攻略 2021年12月25日
  • 眉间痣,痣,长在脸上哪些部位算是美女

    技术眉间痣,痣,长在脸上哪些部位算是美女有人认为眉间痣,长在眉心和嘴角的痣是美人痣。其实不然,长在眼睑旁边和下方肤色较淡部位的明亮之痣,才会让人增色和增运。少数痣的确能够使人更美,但并不是每个人都是美人胚子,关于“美人痣

    生活 2021年10月26日
  • 通过英语怎么说,在英语考试中取得好成绩英语怎么说

    技术通过英语怎么说,在英语考试中取得好成绩英语怎么说在英语考试中取得好成绩的英文通过英语怎么说: do well on the Test of English或者Get good marks in English exa

    生活 2021年10月25日