MySQL实现双主多从架构luniqueWord格式.docx

上传人:b****2 文档编号:15352042 上传时间:2022-10-29 格式:DOCX 页数:14 大小:142.11KB
下载 相关 举报
MySQL实现双主多从架构luniqueWord格式.docx_第1页
第1页 / 共14页
MySQL实现双主多从架构luniqueWord格式.docx_第2页
第2页 / 共14页
MySQL实现双主多从架构luniqueWord格式.docx_第3页
第3页 / 共14页
MySQL实现双主多从架构luniqueWord格式.docx_第4页
第4页 / 共14页
MySQL实现双主多从架构luniqueWord格式.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

MySQL实现双主多从架构luniqueWord格式.docx

《MySQL实现双主多从架构luniqueWord格式.docx》由会员分享,可在线阅读,更多相关《MySQL实现双主多从架构luniqueWord格式.docx(14页珍藏版)》请在冰豆网上搜索。

MySQL实现双主多从架构luniqueWord格式.docx

宕机和断电等)导致不能正常运行,则此时需要让对应的Slave_Backup自动切换为新从机;

7)无论是Master还是切换后的Master_Backup,它们向客户端提供的连接地址应保持一致,如上图提供的VIP+Port,即192.168.31.201:

3306,Slave和Slave_Backup也应如此,对外提供的连接地址始终是192.168.31.202:

3306和192.168.31.203:

3306。

2.实现过程

 

MySQL安装步骤不在此讲述。

1.

2.

2.1.实现Master-Master结构

2.1.1.修改Master和Master_Backup配置文件,vi/etc/f

主要在[mysqld]内添加如下配置项:

Sql配置代码:

log文件名,必填 

log-bin 

mysql-bin 

服务器Id,必须唯一 

server-id 

230 

不参与同步的数据库名,有多个则添加多个配置项 

binlog-ignore-db 

mysql 

Master-Master结构必须的 

log-slave-updates 

slave-skip-errors 

all 

sync_binlog 

read_only 

2.1.2.为复制请求方提供链接账号和密码

由于是Master-Master结构,因此需在双方终端中执行如下SQL命令:

Sql代码:

GRANT 

REPLICATION 

SLAVE 

ON 

*.* 

to 

'

slave'

@'

%'

identified 

by 

slave123'

;

可在mysql实例的user表中查询到记录,重点关注Repl_slave_priv字段的值是否为Y,此账号(用户名:

slave,密码:

slave123)主要用于定位复制点

2.1.3.在从机上指定Master数据源

1)在Master上执行

Sql代码:

SHOW 

MASTER 

STATUS;

得到的结果如下:

重点关注File和Position两个字段值

2)在Master_Backup也执行上述步骤,由于是初始状态,得到的结果和上图一样;

3)在Master上执行如下SQL命令,填入Master_Backup的host、链接账号和密码、File和Position值

mysql>

STOPSLAVE;

CHANGE 

TO 

MASTER_HOST='

192.168.31.233'

MASTER_USER='

MASTER_PASSWORD='

MASTER_LOG_FILE='

mysql-bin.000001'

MASTER_LOG_POS=107;

STARTSLAVE;

4)在Master_Backup上执行如下SQL命令,填入Master的host、链接账号和密码、File和Position值

192.168.31.230'

5)重启Master和Master_Backup

2.1.4.测试

1)当Master和Master_Backup都正常运行时,在任意一端更新数据后都会同步到另一段;

2)当Master处于不可运行时,在Master_Backup更新数据后重启Master,这时在Master上可得到最新的数据;

3)当Master_Backup处于不可运行时,在Maste更新数据后重启Master_Backup,这时在Master_Backup上可得到最新的数据。

2.2.实现Master-Slave结构

2.2.1.实施过程

将2.1.1和2.1.3的过程在所有Slave上操作一遍即可,需要注意配置文件中server-id一定要唯一,还有在执行CHANGEMASTERTO命令时,MASTER_HOST为192.168.31.230

2.2.2. 

测试

1)当Master和Master_Backup都正常运行时,在任意一端更新数据后都会同步到两个Slave上;

2)当Master处于正常运行时,在此端更新数据后都会同步到两个Slave上,而无论Master_Backup是否正常;

3)当Master处于不可运行时,Master_Backup通过Monitor(Keepalived)成为接管者,在Master_Backup更新数据后都会同步到所有Slave上,并且重启Master后,最新数据也会同步到此端。

可事与愿违,在第3)种场景下,Master_Backup不会将数据同步给Slave,即使后来在Slave上将MASTER_HOST指定为Keepalived提供的VIP(192.168.31.201)也无济于事:

192.168.31.201'

STARTSLAVE;

在Slave上执行SHOWSLAVESTATUS;

得出如下结果:

究其原因,如上图所示,Master_Server_Id为230,仍然指向的是已经处于不可运行的Master,而预期结果是希望它能自动的更新定位到Master_Backup(233)上,达到自动切换的目的。

没办法,只有自己执行CHANGEMASTERTO...手动定位了。

我草...,一不注意就会定位错误,造成数据丢失的问题,而且也不满足快速响应容灾切换的目的。

3.最终方案

最终方案将选择mysql-mmm结合半同步机制来实现容灾自动切换。

3.

3.1.在master(230和233)上安装semisyncmaster并设置

INSTALL 

PLUGIN 

rpl_semi_sync_master 

SONAME 

semisync_master.so'

rpl_semi_sync_slave 

semisync_slave.so'

SET 

GLOBAL 

rpl_semi_sync_master_enabled 

1;

rpl_semi_sync_slave_enabled 

vi/ect/f后加入如下配置:

配置代码:

3.2.在slave(231、232、234和235)上安装slave插件并设置

3.3.所有mysql实例停止slave并开启slave,使半同步机制生效

stop 

slave;

start 

3.4.查看semisync状态

show 

status 

like 

%emi%'

重点关注:

1)Rpl_semi_sync_master_clients:

与当前master建立半同步连接的客户端数;

2)Rpl_semi_sync_master_status:

作为半同步master端的就绪状态(ON:

就绪,OFF:

未就绪)

3)Rpl_semi_sync_slave_status:

作为半同步slave端的就绪状态(ON:

3.5.安装mysql-mmm

3.1.

3.2.

3.3.

3.4.

3.5.

3.5.1.新增一台专门用于监控mysql的服务器(mysql_monitor),IP为192.168.31.250

3.5.2.在mysql_monitor、master、master_backup、slave和slave_backup上安装epel网络源

Linux命令行代码:

yum 

install 

3.5.3.在mysql_monitor上安装mysql-mmm-monitor

-y 

mysql-mmm-monitor 

3.5.4.在master、master_backup、sl

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1