mysql server_id作用_MySQL复制过程中server-id的理解

一.    server-id做什么用的,你知道吗?

1、 MySQL的同步的数据中是包含server-id的,用于标识该语句最初是从哪个server写入的,所以server-id一定要有的

2、 每一个同步中的slave在master上都对应一个master线程,该线程就是通过slave的server-id来标识的;每个slave在master端最多有一个master线程,如果两个slave的server-id 相同,则后一个连接成功时,前一个将被踢掉。 这里至少有这么一种考虑:

slave主动连接master之后,如果slave上面执行了slave stop;则连接断开,但是master上对应的线程并没有退出;当slave start之后,master不能再创建一个线程而保留原来的线程,那样同步就可能有问题;

3、 在mysql做主主同步时,多个主需要构成一个环状,但是同步的时候有要保证一条数据不会陷入死循环,这里就是靠server-id来实现的。

二.在my.cnf中设置服务器的ID是一个必要的步骤来实施或开始复制。 一般的规则是,整个环境,我们正在实施MySQL复制服务器的ID必须是唯一的。

一般同时实施复制multi-master/circular,我们设置日志选项从更新的= 1。 所以任何声明时,将执行主的奴隶,它会被记录在该服务器的二进制日志。

例如,我们有3个服务器A,B和 C。 其服务器ID相应的11,22和33。 他们正在复制循环方式(多主),如A是主服务器B,B是C服务器和C的主人是一台服务器的主人。

现在任何MySQL客户端时,将执行插入/更新/删除服务器上的声明,它会被记录在二进制的服务器与服务器ID 11。

由于该语句记录在二进制的服务器,它会去到B服务器(因为B是奴隶),在那里执行和记录BINLOG B服务器在同一台服务器ID 11。 (为什么同一台服务器ID?因为本来这种说法,其执行由SQL线程不正规的mysql客户端发起的服务器与服务器ID 11和B服务器上)。

现在这个语句将再次进入到C服务器(因为C是B的奴隶),在那里执行的二进制日志中记录的C服务器在同一台服务器ID 11。

由于C是主服务器,该语句时会来的C服务器通过二进制日志的服务器, 一台服务器的 SQL线程将比较服务器ID,会发现,同11表示,这种说法是最初发起的服务器本身和没有必要执行SQL线程所以最后将跳过这一说法。

借助服务器的ID,我们就能避免死循环样的情况下在master-master/circular复制。

三.  确保主服务器主机上my.cnf文件的[mysqld]部分包括一个log-bin选项。该部分还应有一个server-id=Master_id选项,其中master_id必须为1到232–1之间的一个正整数值。例如:

6.            [mysqld]

7.            log-bin=mysql-bin

8.            server-id=1

如果没有提供那些选项,应添加它们并重启服务器。

9.    停止用于从服务器的服务器并在其my.cnf文件中添加下面的行:

10.        [mysqld]

11.        server-id=slave_id

slave_id值同Master_id值一样,必须为1到232–1之间的一个正整数值。并且,从服务器的ID必须与主服务器的ID不相同。例如:

[mysqld]

server-id=2

如果设置多个从服务器,每个从服务器必须有一个唯一的server-id值,必须与主服务器的以及其它从服务器的不相同。可以认为server-id值类似于IP地址:这些ID值能唯一识别复制服务器群集中的每个服务器实例。

如果不指定一个server-id值,如果没有定义master-host,则将它设置为1;否则设置为2。请注意如果server-id太长,主服务器 拒绝所有来自从服务器的连接,并且从服务器拒绝连接到主服务器。这样,省略server-id只适合用二进制日志备份。

0b1331709591d260c1c78e86d0c51c18.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/552704.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java如何解析cron成可视化_宅家30天,2万字节java高级工程师面试题解析,如何斩获阿里p7...

宅家里一个月,“闭关修炼”的你是不是正在为金三银四跳槽季发愁呢?小编今天说的这富含的15个互联网大厂Java高级工程师核心面试问题整理!内容包括:kafka面试题及解析18道ZooKeeper面试题及解析28道Linux 面试真题及解析45道MySQL面…

java接口如何接受语音参数_Java 是如何优雅地实现接口数据校验的?

作者 | 无敌码农 责编 | 张文头图 | CSDN 下载自东方 IC来源 | 无敌码农(ID:jiangqiaodege)本篇文章给大家分享平时开发中总结的一点小技巧!在工作中写过 Java 程序的朋友都知道,目前使用 Java 开发服务最主流的方式就是通过 Spring MVC 定义…

msp430单片机 温度计编程_MSP430系列与89C5l系列的比较

1、89C51单片机是8位单片机。其指令是采用的被称为“CISC”的复杂指令集,共具有111条指令。而MSP430单片机是16位的单片机,采用了精简指令集(RISC)结构,只有简洁的27条指令,大量的指令则是模拟指令,众多的寄存器以及片…

php 正则表达式提取出合法的时间_PHP正则表达式核心技术完全详解 第1节

PHP正则表达式核心技术 第1节正则表达式: 就是描述字符串排列模式的一种自定义语法规则、也是用于描述字符串排列 或 匹配模式的一种语法规则、正则表达式: 就是用于描述字符串排列 或 匹配模式的一种语法规则、它主要用于字符串的: 分割字符串、查找字符串、替换字符串 的一系…

anacoda2如何连接使用mysql_Anaconda 安装 Python 库(MySQLdb)的方法-(转)

安装python库的过程中,最重要的地方就是版本需要兼容。其中操作系统为64位,Python为2.X 64位,下载安装文件的时候也要注意版本匹配。其中文件名中包含的cp27表示CPython 2.7版本,cp34表示CPython 3.4,win_amd64指的是6…

php mysql随机记录_php随机取mysql记录方法小结

这篇文章主要介绍了php随机取mysql记录方法,实例分析了几种常见的随机获取mysql数据的方法,是非常实用的技巧,具有一定的参考借鉴价值,需要的朋友可以参考下本文实例总结了php随机取mysql记录方法。分享给大家供大家参考。具体分析如下:在php中要随机取mysql记录我们…

中西方对时间的差异_中西文化的差异-2 时间观

中西文化的差异-2 时间观时间和空间存在不可思议的相似性。因此,人们对时间的不同理解可分为两种时空观念———直线型和循环型。大体而言,英语国家的人认为时间是直线型,客观顺序是把事件分为过去,现在,将来三种时态(…

java开发环境怎么写_Java开发基础设置:如何配置Java运行环境

很多朋友都有自学Java的愿望,但是自学一门语言何其艰难,没人指引的话往往不得其门而入。那么,今天千锋老师就给大家带来Java入门课程中配置Java运行环境的方法,希望能够对大家有所帮助。一、JDK安装 什么是JVMJava Virtual Machin…

被动声呐 相移波束形成_100天计划-DAY9-拖曳声呐

拖曳线列阵声纳是拖曳在距舰船尾部一定距离的声接收系统(通常称为线列阵),通过接收航行目标自身辐射的噪声或者通过接收目标反射回来的信号,来检测目标的有无并估计目标有关参数。拖曳线列阵声纳可以分为主动、被动和主被动联合三…

mysql唯一索引弊端_MySQL 关于唯一索引和普通索引的抉择

想象这样一个场景,在设计一张用户表时,每人的身份证号是唯一的,需要搜索。但由于身份证号字段较大,不好将其作为主键。在业务代码已经保证插入身份证唯一的情况下,可以选择建立唯一索引和普通普通索引,这时…

java 反射 父类的属性_用反射的方式获取父类中的所有属性和方法

package com.syh.jdbc.reflection_super;/*** 父类* author syh**/public class Parent {public String publicField "1";String defaultField "2";protected String protectedField "3";private String privateField "4" ;public…

java中变量命名规范_关于java中变量命名规范的详细介绍

Java是一种区分字母的大小写的语言,所以我们在定义变量名的时候应该注意区分大小写的使用和一些规范,接下来我们简单的来讲讲Java语言中包、类、变量等的命名规范。(一)Package(包)的命名Package的名字应该都是由一个小写单词组成,例如com、x…

java找重复字符串_在java中怎样查找重复字符串

在一段java编程代码中,字符串是不可缺少的一个要素,属于java中的基础知识,字符串不仅在java面试题中会出现,在编写代码时更要掌握怎样使用字符串。在前面我们也学习过关于字符串截取的知识,你应该有所掌握吧、格式化字…

python excel 单元格格式_python设置单元格数值格式

python xlwt如何设置单元格格式python xlwt模块怎么设置excel单元格的属性如图,默认是general。我想写入的时候就是Text类型.请问应该怎么做。from xlwt import Workbook,Stylewb Workbook()ws wb.add_sheet(Type examples)ws.row(0).write(0,1)ws.row(0).set_cell_text(1,1)…

python调用.a静态库_Python 调用 C

了解了相关资料不折腾的方法有(以往文章有):pypy,numba,numpy但都不是 纯正的 C折腾的:cffi,Cython,Boost.Python,Cpython 自带模块,SWIG 等挺折腾的You can write an extension you…

java给一个数组随机数_Java案例-数组随机数

.数组案例分析定义一个int型的一维数组,包含10个元素,分别赋一些随机整数,然后求出所有元素的最大值Max,最小值Min,平均值Avg,和Sum值,并输出出来。具体实现代码:package teacher01;…

java 自旋方法_JAVA循环使用CAS实现自旋操作

大家碰到了实现一个线程安全的计数器的需求改怎么做呢?根据经验你应该知道我们要在多线程中实现共享变量的原子性和可见性问题,于是锁成为一个不可避免的话题,下文讨论的是与之对应的无锁CAS。为什么要无锁我们一想到在多线程下保证安全的方式…

java实现extended smtp_java实现发送邮件(SMTP)

1.pom引入包javax.mailmail1.4.72.Email实体类import lombok.Data;import lombok.EqualsAndHashCode;import lombok.experimental.Accessors;import java.util.List;import java.util.Map;/*** ClassName: Email* author: mxy* Description: Email的实体类*/DataEqualsAndHashC…

java addcallback函数_java中怎么使用callback函数?

UYOU在很多场景,作为开发都会想到,在执行完毕一个任务的时候,能执行一个callback函数是多么好的事情。现在模拟一下这个情景:定义三个类。分别是主函数类。callback函数的接口类。业务处理类。在业务处理类中,处理完业…

在java中的交换方法有哪些_java中交换两个变量的值有哪几种方法,交换两个变量a和b的值...

java中交换两个变量的值有哪几种方法在Java中,有哪些方法可以交换两个变量的值,方法:1.定义临时变量2.没有必要定义临时变量3.使用位运算符(学习视频分享:java课程)代码示例:公共类SwapTest {公共静态void main(String…