Mariadb高可用MHA

目录

一、ssh免密登录

二、mysql主从复制

三、MHA安装


概念:

1、MHA(MasterHigh Availability)是一套优秀的MySQL高可用环境下故障切换和主从复制的软件。

2、MHA 的出现就是解决MySQL 单点的问题。

3、MySQL故障切换过程中,MHA能做到0-30秒内自动完成故障切换操作。

4、MHA能在故障切换的过程中最大程度上保证数据的一致性,以达到真正意义上的高可用。

特点:

1、MHA能在故障切换的过程中最大程度上保证数据的一致性,以达到真正意义上的高可用。

2、使用半同步复制,可以大大降低数据丢失的风险,如果只有一个slave已经收到了最新的二进制日志,MHA可以将最新的二进制日志应用于其他所有的slave服务器上,因此可以保证所有节点的数据一致性

3、目前MHA支持一主多从架构,最少三台服务,即一主两从

一、ssh免密登录

准备三台安装好mariadb的虚拟机和一台干净环境的MHA

下面是我设置好的四台主机

192.168.115.128    mgt
192.168.115.130    master
192.168.115.131    slave1
192.168.115.132    slave2

每台主机生成密钥对传至其他三台

ssh-keygen                        生成密钥对

ssh-copy-id                        将公钥传至其他服务器

实现主机名登录做解析

vim /etc/hosts

192.168.115.128 mgt
192.168.115.130 master
192.168.115.131 slave1
192.168.115.132 slave2
wq

scp /etc/hosts 192.168.115.130:/etc/hosts

scp /etc/hosts 192.168.115.131:/etc/hosts

scp /etc/hosts 192.168.115.132:/etc/hosts

做验证

ssh master

ssh slave1

ssh slave2

依此验证(其他主机也要试一下,大家知道怎么验证就行了,就不逐一打了)

二、mysql主从复制

master更改如下:

vim /etc/my.cnf

[mysqld]

server-id = 20
log-bin = master-bin
log-slave-updates = true

wq

systemctl restart mariadb                        重启mariadb

配置可用的访问用户

mysql -uroot -p

grant replication slave on *.* to 'myslave'@'192.168.115.%' identified by '123.com';

grant all privileges on *.* to 'mha'@'192.168.115.%' identified by '123.com';

grant all privileges on *.* to 'mha'@'192.168.115.128' identified by '123.com';

grant all privileges on *.* to 'mha'@'192.168.115.131' identified by '123.com';

grant all privileges on *.* to 'mha'@'192.168.115.132' identified by '123.com';

flush privileges;

show master status;

slave:

vim /etc/my.cnf

[mysqld]

server-id=30
log-bin=master-bin
relay-log=relay-log-bin
relay-log-index=relay-log-bin.index

wq

systemctl restart mariadb                        重启mariadb

mysql -uroot -p

grant replication slave on *.* to 'myslave'@'192.168.115.%' identified by '123.com';

grant all privileges on *.* to 'mha'@'192.168.115.%' identified by '123.com';

grant all privileges on *.* to 'mha'@'192.168.115.128' identified by '123.com';

grant all privileges on *.* to 'mha'@'192.168.115.130' identified by '123.com';

grant all privileges on *.* to 'mha'@'192.168.115.132' identified by '123.com';

flush privileges;

指定master

change master to master_host='192.168.115.130',master_user='myslave',master_password='123.com',master_log_file='master-bin.000001',master_log_pos=1088;                标红的地方看自己master的

另外一台一样

完事之后验证一下:

[master]

mysql -uroot -p

>create database aaa;

>show databases;


[slave1]

show databases;

[slave2]

show databases;

确保验证成功

三、MHA安装

所有节点安装perl环境(四台多要装)

yum -y install epel-release 

yum -y install perl-DBD-MySQL perl-ExtUtils-MakeMaker perl-Config-Tiny perl-Log-Dispatch perl-Parallel-ForkManager perl-Time-HiRes perl-CPAN

所有节点安装node(四台多要装)

tar xf mha4mysql-node-0.57.tar.gz

cd mha4mysql-node-0.57

perl Makefile.PL && make && make install

验证

cd /usr/local/bin

ll

看到脚本就OK

安装manager(只需MHA安装)

tar xf mha4mysql-manager-0.57.tar.gz

cd /root/mha4mysql-manager-0.57

perl Makefile.PL && make && make install

cp sample/scripts/master_ip_failover /usr/local/bin/

cp sample/scripts/master_ip_online_change     /usr/local/bin/

cd /usr/local/bin

vim master_ip_failover

指定vip地址

指定vip广播地址

指定vip绑定的网卡

mkdir /etc/masterha                        配置文件建立

vim /etc/masterha/app1.cnf                    

[server default]
manager_log=/var/log/masterha/app1/manager.log
manager_workdir=/var/log/masterha/app1
master_binlog_dir=/var/lib/mysql
master_ip_failover_script=/usr/local/bin/master_ip_failover
master_ip_online_change_script=/usr/local/bin/master_ip_online_change
password=123.com
ping_interval=1
remote_workdir=/tmp
repl_password=123.com
repl_user=myslave
secondary_check_script=/usr/local/bin/masterha_secondary_check -s 192.168.115.131 -s 192.168.115.132
shutdown_script=""
ssh_user=root
user=mha

[server1]
hostname=192.168.115.130
port=3306

[server2]
candidate_master=1
check_repl_delay=0
hostname=192.168.115.131
port=3306

[server3]
hostname=192.168.115.132
port=3306
 

wq

mkdir /var/log/masterha/app1

测试MHA

masterha_check_ssh --conf=/etc/masterha/app1.cnf

masterha_check_repl --conf=/etc/masterha/app1.cnf

启动命令

nohup masterha_manager --conf=/etc/masterha/app1.cnf --remove_dead_master_conf --ignore_last_failover < /dev/null > /var/log/masterha/app1/manager.log 2>&1 &

测试

停用master的mariadb服务

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值