暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MySQL MHA

MySQLDBA运维零基础自学 2021-04-13
710

学习前提:
1>安装三台虚拟机,yum源配置可用,配置网卡可互相通信(或者三台云服务器);
2>掌握mysql5.7在linux上的安装,初始化,启动等;
3>掌握GTID主从复制搭建能力;

(脚本和配置文件Demo需要请和作者联系)


MHA原理:

    MHA的目的在于维持MySQL Replication中master库的高可用性,其最大的特点是可以修复多个slave之前的差异日志,最终使所有slave保持数据一致,然后从中选择一个充当新的master,并将其他slave指向它。当master出现故障时,可以通过对比slave之前IO thread读取主库binlog的position号,选择最接近的slave作为备选主库(备胎)。其他的从库可以通过与备选主库对比生成差异的中继日志,在备选主库上应用从原来master保存的binlog,同时将备选主库提升为master。最后在其他slave上应用相应的差异中继日志并从新的master开始复制。


manager节点发送心跳信息监测



1、搭建主从

使用GTID,一主两从模式,步骤略

2、搭建三节点互信

三个都做
[root@localhost ~]# cd .ssh
[root@localhost .ssh]# ls
known_hosts
[root@localhost .ssh]# ssh-keygen

两从
scp id_rsa.pub 192.168.168.101:~/.ssh/id_rsa.pub1
scp id_rsa.pub 192.168.168.101:~/.ssh/id_rsa.pub2


cat id_rsa.pub id_rsa.pub1 id_rsa.pub2 > authorized_keys
chmod 600 authorized_keys
scp authorized_keys  192.168.168.102:~/.ssh/
scp authorized_keys  192.168.168.103:~/.ssh/

测试
ssh 192.168.168.102 date


3、搭建mhanode节点


拷贝文件(略)

三个安装环境

先挂载yum源
chown root:root -R dev/sr0
mount dev/sr0 mnt/centos

yum -y install perl-DBD-MySQL
yum -y install perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker
yum -y install perl-devel perl-CPAN

tar -xvzf mha4mysql-node-0.57.tar.gz
mkdir -p etc/mha/mhanode
cp -r  mha4mysql-node-0.57/* etc/mha/mhanode
cd etc/mha/mhanode
perl Makefile.PL
make
make install

出现两个loaded即可
perl Makefile.PL
#####[Core Features]
#####- DBI        ...loaded. (1.627)
#####- DBD::mysql ...loaded. (4.023)
#####*** Module::AutoInstall configuration finished. make make install
make
make install


4、搭建MHAMANAGER节点

slave 3(从机第二台)上安装
tar -xvf mha4mysql-manager-0.57.tar.gz
yum install -y perl-ExtUtils-Embed
yum install -y perl-Time-HiRes


或者进入到拷贝文件目录 yum -y localinstall *.rpm

安装MANAGER节点
tar -xvf mha4mysql-manager-0.57.tar.gz
mkdir -p etc/mha/mhamanager
cp -rf mha4mysql-manager-0.57/* etc/mha/mhamanager
cd etc/mha/mhamanager
perl Makefile.PL
make
make install

5、MHA配置文件

mkdir -p etc/mha/app1
vim etc/mha/app1.cnf

6、编辑切换脚本

7、赋予脚本权限7、

chmod +x etc/mha/master_ip_failover
 chmod +x master_ip_online_change 


8、利用MHA工具检测

 检测SSH
 /etc/mha/mhamanager/bin/masterha_check_ssh --conf=/etc/mha/app1.cnf


检测主从复制
 /etc/mha/mhamanager/bin/masterha_check_repl --conf=/etc/mha/app1.cnf

9、 主库拉起vip启动
 
 ifconfig ens33:0 192.168.168.100 up


10、启动mha
 nohup /etc/mha/mhamanager/bin/masterha_manager --conf=/etc/mha/app1.cnf --ignore_last_failover > /tmp/mha_manager.log < /dev/null 2>&1 &


11、 验证成功并查看显示状态
 /etc/mha/mhamanager/bin/masterha_check_status --conf=/etc/mha/app1.cnf app1





1

最后修改时间:2021-04-14 09:14:45
文章转载自MySQLDBA运维零基础自学,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论