mysql cluster 和mha_Mysql集群-MHA

拓谱图

2018-05-05-12-03-02%E5%B1%8F%E5%B9%95%E6%88%AA%E5%9B%BE.png

规划与要求

主机名称

操作系统

开启的模式

IP地址

Master-51

Centos7.2

开半同步复制

192.168.4.51

slave-52

Centos7.2

开半同步复制

192.168.4.52

slave-53

Centos7.2

开半同步复制

192.168.4.53

slave-54

Centos7.2

没有需求

192.168.4.54

slave-55

Centos7.2

没有需求

192.168.4.55

slave-56-Manager

Centos7.2

管理主机

192.168.4.56

要求:

一、配置所有数据节点主机之间可以互相以ssh密钥对方式认证登陆

二、配置manager56主机 无密码ssh登录 所有数据节点主机

三、配置主从同步

实施与部署环境

1.所有环境配置主机名和IP

2.所有机器实现无密码登入

3.所有机器安装perl包

4.slave-56安装机器的管理包

master51配置

1.修改51的配置文件

vim /etc/my.cnf

[mysqld]

plugin-load = "rpl_semi_sync_master=semisync_master.so;rpl_semi_sync_slave=semisync_slave.so"

rpl-semi-sync-master-enabled = 1

rpl-semi-sync-slave-enabled = 1

server_id=51

log-bin=master51

binlog-format="mixed"

2.重起查看日志文件是否开启

[root@Master-51 ~]# systemctl restart mysqld

[root@Master-51 ~]# ls /var/lib/mysql/master51.*

3.清理日志

mysql> set global relay_log_purge=off;

show master status;

4.授权slave用户访问

5..查看master状态

mysql> show master status;

2018-05-05-14-23-23%E5%B1%8F%E5%B9%95%E6%88%AA%E5%9B%BE.png

备用master52/53的配置

1.修改配置文件

vim /etc/my.cnf

[mysqld]

plugin-load = "rpl_semi_sync_master=semisync_master.so;rpl_semi_sync_slave=semisync_slave.so"

rpl-semi-sync-master-enabled = 1

rpl-semi-sync-slave-enabled = 1

server_id=52/53

log-bin=master52/53

binlog-format="mixed"

2.重起并且查看日志是否生成

[root@slave-52 ~]# systemctl restart mysqld

[root@slave-52 ~]# ls /var/lib/mysql/master52.*

3.开启主从同步

mysql> set global relay_log_purge=off;

mysql> change master to

-> master_host="master的IP",

-> master_user="授权的用户",

-> master_password="授权的密码",

-> master_log_file="主的日志名称",

-> master_log_pos=偏移量;

4.开启slave

start slave;

5.查看是否主从同步成功

mysql -uroot -p123456 -e "show slave status\G" | grep -i YES

备用master54/55的配置

1.修改配置文件

vim /ect/my.cnf

server_id=54/55

2.开启主从同步

mysql> set global relay_log_purge=off;

mysql> change master to

-> master_host="master的IP",

-> master_user="授权的用户",

-> master_password="授权的密码",

-> master_log_file="主的日志名称",

-> master_log_pos=偏移量;

mysql> start slave;

mysql> show slave\G;

统一安装以下的包slave-51~55

yum -y install perl-* perl-DBD-mysql perl-DBI mha4mysql-node-0.56-0.el6.noarch.rpm

2018-05-05-16-25-30%E5%B1%8F%E5%B9%95%E6%88%AA%E5%9B%BE.png

grant all on *.* to 'root'@'%' identified by '123456'; #slave--51上授权

manage-56配置

yum -y install perl-DBD-mysql perl-DBI mha4mysql-node-0.56-0.el6.noarch.rpm

yum -y install perl-ExtUtils-* perl-CPAN-*

tar -zxf mha4mysql-manager-0.56.tar.gz

cd mha4mysql-manager-0.56

make && make install

新的命令

作用

masterha_check_ssh

检查MHA的SSH配置状况

masterha_check_repl

检查MySQL复制状况

masterha_manger

启动MHA

masterha_check_status

检测MHA运行状态

masterha_master_monitor

检测master是否宕机

管理节点的配置

cp mha4mysql-manager-0.56/bin/* /usr/local/bin/

mkdir /etc/mha_manager/

cp samples/conf/app1.cnf /etc/mha_manager/ #配置文件

cp mha4mysql-manager-0.56/samples/scripts/master_ip_failover /usr/local/bin/ #配置VIP的脚本

编辑配置文件

[root@mysql-master]# vim /etc/mha_manager/app1.cnf

manager_workdir=/etc/mha_manager #工作的目录

manager_log=/etc/mha_manager/manager.log #日志文件的存放位置

master_ip_failover_script=/usr/local/bin/master_ip_failover #自动failover时候的切换脚本

ssh_user=root

ssh_port=22

repl_user=repluser #主从同步用户名

repl_password=123456 #主从同步密码

user=root #连接数据库服务器用户名

password=123456 #密码

[server1]

hostname=192.168.4.51

port=3306 #端口写可不写,默认监控3306

[server2]

hostname=192.168.4.52

candidate_master=1 #设置为候选的master

[server3]

hostname=192.168.4.53

candidate_master=1

[server4]

hostname=192.168.4.54

no_master=1 #不竞选master

[server5]

hostname=192.168.4.55

no_master=1

测试MHA的连通性

[root@mysql-master]# masterha_check_ssh --conf=/etc/mha_manager/app1.cnf 测试集群的连通

[info] Reading server configuration from /etc/mha_manager/app1.cnf..

[info] Starting SSH connection tests..

[info] All SSH connection tests passed successfully. #所有的都成功

配置集群的高可用

1.主库上手动部署VIP地址 192.168.4.100

[root@mysql-master]# ifconfig eth0:1 192.168.4.100/24 #在eth0上绑定地址

[root@mysql-master]# ifconfig eth0:1

eth0:1: flags=4163 mtu 1500

inet 192.168.4.100 netmask 255.255.255.0 broadcast 192.168.4.255

ether 52:54:00:43:7c:39 txqueuelen 1000 (Ethernet)

2.修改perl的脚本文件

vim /usr/local/bin/master_ip_failover

my vip = '192.168.4.100/24'; # 虚拟的IP地址 mykey = "1";

my ssh_start_vip = "/sbin/ifconfig eth0:key vip"; myssh_stop_vip = "/sbin/ifconfig eth0:$key down";

2018-05-05-17-11-15%E5%B1%8F%E5%B9%95%E6%88%AA%E5%9B%BE.png

3.启动服务测试

masterha_manager --conf=/etc/mha_manager/app1.cnf --remove_dead_master_conf --ingnore_last_failover

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值