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)

相关推荐

  • 多姿多彩是什么意思,我们的生活多姿多彩是什么意思

    技术多姿多彩是什么意思,我们的生活多姿多彩是什么意思我一直在问,怎么才能使自己变的更加有趣,反复求索,综合各方的意见,总结出了让自己更加有趣的秘方-过多姿多彩的生活多姿多彩是什么意思。首先心态,健康,乐观的积极心态是使自

    生活 2021年10月28日
  • ASP.NET1.1验证码产生的原理及应用是怎样的

    技术ASP.NET1.1验证码产生的原理及应用是怎样的今天就跟大家聊聊有关ASP.NET1.1验证码产生的原理及应用是怎样的,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有

    攻略 2021年11月26日
  • 分析Angular中的预加载配置、懒加载配置

    技术分析Angular中的预加载配置、懒加载配置本篇内容主要讲解“分析Angular中的预加载配置、懒加载配置”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“分析Angular

    攻略 2021年11月5日
  • 华氏度摄氏度对照表,1摄氏度等于多少华氏度

    技术华氏度摄氏度对照表,1摄氏度等于多少华氏度1摄氏度等于33.8华氏度。摄氏度的含义是指在1标准大气压下华氏度摄氏度对照表,纯净的冰水混合物的温度为0度,水的沸点为100度,其间平均分为100份,每一等份为1度,记作1

    生活 2021年10月22日
  • 在Mac下怎么快速重置mysql root密码

    技术在Mac下怎么快速重置mysql root密码这篇文章将为大家详细讲解有关在Mac下怎么快速重置mysql root密码,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

    攻略 2021年10月29日
  • TestComplete中如何使用VBScript脚本实现对容器控件中子对象的遍历

    技术TestComplete中如何使用VBScript脚本实现对容器控件中子对象的遍历这篇文章给大家分享的是有关TestComplete中如何使用VBScript脚本实现对容器控件中子对象的遍历的内容。小编觉得挺实用的,

    攻略 2021年11月1日