环境
Mysql
- 使用Mysql5.7.*版本,在Slave和Master集群中安装
HAproxy
- 使用HAproxy1.8版本,在CentOS环境中安装,使用单独服务器,以提高性能
Keepalived
- 使用Keepalived1.3.5版本,在Master和Backup服务器上安装,使用漂移VIP
-MHA
- 使用mha-mangaer-0.55版本,Manager单独安装服务器,Node安装在Master和Back中
操作
安装配置
安装Mysql数据库
- 分别在slave01-03服务器和master\backup服务器中安装
mysql57-community-server
- 安装步骤:导入mysql repo源,使用
yum-config-manager
禁用mysql80源,启用mysql57源,然后使用yum install mysql-community-server
安装
- 分别在slave01-03服务器和master\backup服务器中安装
配置数据库主从复制
- master和slave使用异步主从复制,并在slave服务器中设置
read_only=1
和relay_log_opurge=0
- master和backup使用半同步主从复制,会用到插件
rpl_semi_sync_master/slave
- 在master数据库中授权用户通过服务器haproxy访问的权限
- 参考文章:
- master和slave使用异步主从复制,并在slave服务器中设置
安装配置keepalived
- 分别在master和backup中安装keepalived,设置漂移VIP地址为
192.168.0.110
,master和backup的级别、路由id、认证密码相同,state都设置为BACKUP,启用非抢夺模式 - 首先启动master服务器中的keepalived,再启动backup
- 参考文章:
- 分别在master和backup中安装keepalived,设置漂移VIP地址为
安装配置MHA
- 分别在master,backup和slave中安装MHA-Node
- 在mha服务器中安装MHA-Manager,设置配置文件,修改故障转移脚本
- 在启用mha之前,使用命令
masterha_check_ssh --conf=/etc/masterha/app1.cnf
检查ssh信任,使用命令masterha_check_repl --conf=/etc/masterha/app1.cnf
检查mysql的主从同步 - mha启用后,使用命令
masterha_check_status --conf=/etc/masterha/app1.cnf
检查mha的状态 - 以daemon的方式启动MHA,使用命令行
nohup masterha_manager --conf=/etc/masterha/app1.cnf --remove_dead_master_conf --ignore_last_failover < /dev/null > /var/log/masterha/app1/app1.log 2>&1 &
安装配置haproxy
- 在haproxy服务器上安装haproxy,修改配置文件,启用状态检测
- 通过端口分离读写,
3306
读,3307
写 - 在启用haproxy之前,可以使用命令
haproxy -f /etc/haproxy/haproxy.cfg
检查haproxy的配置是否正确 - 参考文章:
启用
- 启用Mysql数据库,检查主从同步复制
- 启用master中的keepalived,启用backup中的keepalived
- 启用haproxy,检查haproxy的统计信息
- 启用MHA-Manager,检查其状态
读写简单测试
在本地通过client连接Mysql数据库,使用3307段口号
mysql -u root -p -h haproxy -P 3307
查看Mysql的
server_id
show global variables like '%server_id%';
在本地通过client连接Mysql数据库,使用3306段口号
mysql -u root -p -h haproxy -P 3307
查看Mysql的
server_id
- 多次执行
show global variables like '%server_id%';
查看每次获取的server-id
- 多次执行