跨 云平台 mysql 复制_goodrain云平台 mysql主从同步应用创建

mysql 主从同步原理

1895635bb44b540ac3674e375aedc2da.png

1)在Slave 服务器上执行sart slave命令开启主从复制开关,开始进行主从复制。

2)此时,Slave服务器的IO线程会通过在master上已经授权的复制用户权限请求连接master服务器,并请求从执行binlog日志文件的指定位置(日志文件名和位置就是在配置主从复制服务时执行change master命令指定的)之后开始发送binlog日志内容。

3)Master服务器接收到来自Slave服务器的IO线程的请求后,其上负责复制的IO线程会根据Slave服务器的IO线程请求的信息分批读取指定binlog日志文件指定位置之后的binlog日志信息,然后返回给Slave端的IO线程。返回的信息中除了binlog日志内容外,还有在Master服务器端记录的IO线程。返回的信息中除了binlog中的下一个指定更新位置。

4)当Slave服务器的IO线程获取到Master服务器上IO线程发送的日志内容、日志文件及位置点后,会将binlog日志内容依次写到Slave端自身的Relay Log(即中继日志)文件(Mysql-relay-bin.xxx)的最末端,并将新的binlog文件名和位置记录到master-info文件中,以便下一次读取master端新binlog日志时能告诉Master服务器从新binlog日志的指定文件及位置开始读取新的binlog日志内容。

5)Slave服务器端的SQL线程会实时检测本地Relay Log 中IO线程新增的日志内容,然后及时把Relay LOG 文件中的内容解析成sql语句,并在自身Slave服务器上按解析SQL语句的位置顺序执行应用这样sql语句,并在relay-log.info中记录当前应用中继日志的文件名和位置点。

goodrain云平台整合mysql集群

1. 实现步骤

构建mysql镜像;

构建集群镜像,发布云市场;

利用云市场镜像构建mysql集群。

1. 构建mysql镜像(支持主从同步),目前github(https://github.com/goodrain-apps/percona-mysql)上已将代码更新, 设计到的修改主要有以下几点:

master节点和slave节点的uuid不同。

用同一mysql镜像创建mysql主从同步集群时,发现每台mysql服务的uuid都是相同的,是因为在数据初始化时将uuid写在了/var/lib/mysql/auto.cnf文件中,这时候需要在mysql启动生成配置文件后修改此文件的uuid,确保每个mysql服务的uuid不相同即可。

eb38fc4e6dad8765207f098adbe0b819.png

解决:克隆代码,修改配置文件

9a01a12b282d8dbe58458e5df3002059.png

b0813d20844bc4fc5f38994c5cc3365a.png

master节点和slave节点的server_id不同。

如何确保每个mysql服务的server_id不同,k8s在创建容器时,会为每个容器创建创建一个主机名( 如:gr78648d-0),创建多个容器后面的数字会依次递增,所以可以利用这一特性生成不同的server_id(主机名数字部分 + 环境变量数字),然后在maser和slave使用不同的环境变量数字数字即可。

54b74dac8d6c7b518f48e8b6008d4c73.png

52fc66e4a0486ff304856781b7d56487.png

创建镜像,并将镜像推到dockerhub上

b9f987f680f1578eaebe8c81c41767f8.png

2. 构建集群镜像,发布云市场。

创建master应用

734d21207a07a2bfffad4e1286a1433c.png

6be7781fc65f89b59647b15a22b7f12f.png

0f656edbf6c76071cbdc68484db19d30.png

2abf21fcef01946053ad78651df22a6d.png

配置--》环境变量

7eb245f32fa16c5231fd6deb79fb7933.png

74ee4ba62224b84ece361e30e8370abc.png

创建slave应用

3e8d90e5dd2d536370e2daf8c2c48e84.png

a3fb5425e2903eb1ac880f5d33634852.png

827f573331f4256b60b2faac7e8fcd26.png

7dbace8227ad8888bf4671b0b554d205.png

设置slave依赖master

9802cfbb9f1a5361d71fb9b236265dff.png

创建两台slave

dca1e92d25598385041c2e9540b752b4.png

发布到云市场(实例为发送到团队中)

3ee0a92ba4f5a37c455b37b427c1618d.png

3. 利用云市场镜像构建mysql集群。

创建容器

e06d4203c8db08aab1441c99ed877c2e.png

进入master查看bin_log 详情

e0324b387bf00fb684c38ff426de0fe6.png

进入slave 设置连接

e1c80fec8c57758f77f176aed62db4dc.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值