搭建mysql的MHA架构的详细步骤
admin
2023-02-23 03:40:07
0

文主要给大家介绍搭建mysql的MHA架构的详细步骤,文章内容都是笔者用心摘选和编辑的,具有一定的针对性,对大家的参考意义还是比较大的,下面跟笔者一起了解下搭建mysql的MHA架构的详细步骤吧。      

实验思路:
1. MHA架构
1)数据库安装
2)一主两从
3) MHA搭建
2.故障模拟
1)主库失效
2)备选主库成为主库.
3)从库2将备选主库指向为主库
案例环境
1.本案例环境
云服务器CentOS7. 4(64位)[ MHA manager/192. 168. 195. 128
管理节点,安装manager. 组件
云服务器Cent0S7. 4(64位) Mysq11/192. 168. 195. 129 Master 节点,安装node组件
云服务器Cent0S7. 4(64位) Mysq12/192. 168. 195. 130 Slave 节点,安装node组件
云服务器Cent0S7. 4(64位) Mysq13/192. 168. 195. 131 Slave 节点,安装node 组件
这里操作系统是Cent0S7 版本,所以这里下载MHA版本是0.57版本。
2. 案例需求
本案例要求通过MHA监控MySQL数据库在故障时进行自动切换,不影响业务。
3.案例实现思路
1) 安装MySQL 数据库,
2)配置MySQL一-主两从
3) 安装MHA软件
4)
配置无密码认证
5)配置MySQL MHA高可用
6) 模拟master 故障切换
在三台MySQL节点上分别安装数据库,MySQL版本请使用5. 6.36,cmake 版本请使
用2.8.6。下面只在Mysq11. 上面做演示,安装过程如下。
搭建mysql的MHA架构的详细步骤

curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget ftp://192.168.10.250/pub/MHA/*
1.安装编译依赖的环境
[ root@Mysq11 ] # yum -y install ncurses-devel gcc-c++ perl-Module-Install

2.
安装gmake_ 编译软件
tar zxvf cmake-2.8.6.tar.gz
cd cmake-2.8.6
./configure
gmake -j6 && gmake install

3.安装MySQL_数据库
tar -zxvf mysql-5.6.36.tar.gz
cd mysql-5.6.36
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DSYSCONFDIR=/etc

make -j12 && make instal
cp support-files/my-default.cnf /etc/my.cn
cp support-files/mysql.server /etc/rc.d/init.d/mysqld
chmod +x /etc/rc.d/init.d/mysqld

chkconfig --add mysqld
echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
source /etc/profile
useradd -M -s /sbin/nologin mysql
chown -R mysql.mysql /usr/local/mysql/

/usr/local/mysql/scripts/mysql_install_db \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data \
--user=mysql

4.修改Master的主配置文件/etc/my. cnf 文件,三台云服务器的
server-id不能一样
vim /etc/my.cnf
[mysqld]
server-id = 1
log-bin = master-bin
log-slave-updates = true

配置从云服务器:
在/etc/my.cnf_ 中修改或者增加下面内容。
vim /etc/my. cnf
server-id = 2
log-bin = master-bin
relay-log = relay-log-bin
relay-log-index = slave-relay-bin.index

5. master、 slave1、 slave2 分别做两个软链接.
ln -s /usr/local/mysql/bin/mysql /usr/sbin/
ln -s /usr/local/mysql/bin/mysqlbinlog /usr/sbin/

/usr/local/mysql/bin/mysqld_safe --user=mysql &
systemctl stop firewalld.service

#从库同步使用用户myslave  另外一个是manager 使用监控用户mha
mysql> grant replication slave on *.* to 'myslave'@'192.168.1.%' identified by '123';
mysql> grant all privileges on *.* to 'mha'@'192.168.1.%' identified by 'manager';

#下面三条授权按理论是不用添加的,但是案例实验环境通过MHA检查时候会报错
grant all privileges on *.* to 'mha'@'host1' identified by 'manager';
grant all privileges on *.* to 'mha'@'host2' identified by 'manager';
grant all privileges on *.* to 'mha'@'host3' identified by 'manager';

change master to master_host='192.168.1.101',master_user='myslave',
master_password='123',master_log_file='master-bin.000004',master_log_pos=245
set global read_only=1

curl -o /etc/yum.repos.d/CentOS-Base.repo
http://mirrors.aliyun.com/repo/Centos-7.repo
每台云服务器都需要安装Perl的环境
yum -y install epel-release --nogpgcheck

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

所有服务都需要装node
manager云服务器上装的时候,要先安装node软件包
tar zxvf mha4mysql-node-0.57.tar.gz
cd mha4mysql-node-0.57/
perl Makefile.PL
make && make install

manager云服务器
tar zxvf mha4mysql-manager-0.57.tar.gz
perl Makefile.PL
make && make install

manager安装后在/usr/local/bin下面会生成几个工具,主要包括以下几个:
masterha_check_ssh检查MHA的SSH配置状况
masterha_check_repl检查MySQL 复制状况
masterha_manger 启动manager的脚本
masterha_check_status检测当前MHA运行状态
masterha_master_monitor检测master 是否宕机
masterha_master_switch 控制故障转移(自动或者手动)
masterha_conf_ host添加或删除配置的server 信息
masterha_stop   关闭manager

4. node 安装后也会在/usr/local/bin 下面会生成几个脚本(这些工具通常由MHA
iManager 的脚本触发,无需人为操作)主要如下:
save_binary_logs 保存和复制master. 的二进制日志
apply_diff_relay_logs 识别差异的中继日志事件并将其差异的事件应用于其他的slave
filter_mysqlbinlog去除不必要的ROLLBACK 事件(MHA已不再使用这个工具)
purge_relay_logs清除中继日志(不会阻塞SQL线程)

配置无密码访问
manager云服务器
ssh-keygen
ssh-copy-id 192.168.1.101
ssh-copy-id 192.168.1.102
ssh-copy-id 192.168.1.103

master云服务器
ssh-keygen
ssh-copy-id 192.168.1.102
ssh-copy-id 192.168.1.103

slave1云服务器
ssh-keygen
ssh-copy-id 192.168.1.101
ssh-copy-id 192.168.1.103

slave2云服务器
ssh-keygen
ssh-copy-id 192.168.1.101
ssh-copy-id 192.168.1.103

###配置MHA云服务器
在manager节点上复制相关的脚本到/usr/local/bin目录
cp -ra /mnt/mha4mysql-manager-0.57/samples/scripts /usr/local/bin/

复制上述自动切换时VIP管理的脚本到cp /usr/local/bin/scripts/master_ip_failover /usr/local/bin
vim /usr/local/bin/master_ip_failover
脚本在FTP云服务器上

创建MHA软件目录并拷贝配置文件
mkdir /etc/masterha
cp /mnt/mha4mysql-manager-0.57/samples/conf/app1.cnf  /etc/masterha/
vim /etc/masterha/app1.cnf

#测试各个节点的SSH能不能实现
masterha_check_ssh -conf=/etc/masterha/app1.cnf
#检测mysql是否可以监听
masterha_check_repl -conf=/etc/masterha/app1.cnf

//注意第一次配置需要去master上手动开启虚拟IP
/sbin/ifconfig ens32:1 192.168.1.200/24

#手动启动MHA
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状态
masterha_check_status -conf=/etc/masterha/app1.cnf

#监控manager状态
tailf /var/log/masterha/app1/manager.log
grant all on *.* to test@'192.168.1.%' identified by 'test';

看完以上关于搭建mysql的MHA架构的详细步骤,很多读者朋友肯定多少有一定的了解,如需获取更多的行业知识信息 ,可以持续关注我们的行业资讯栏目的。


相关内容

热门资讯

前微软首席技术专家创办,智用开... 瑞财经 李兰 近日,据智用开物微信公众号,智用开物获近亿元天使+轮融资,由老股东瑞枫资本领投,创享投...
男子再婚后做全职丈夫,照顾岳父... 再婚相伴十余载,放弃工作悉心照料岳父多年,默默扛起家庭重任,感情走向破裂面临离婚,家务劳动与养老照料...
让每一粒粮食住上“空调房” 从田间到餐桌,粮食不仅要种得好,更要存得好。记者从国家粮食和物资储备局了解到,今年,我国将深入推进绿...
涉AI,中方在联合国表态 联合国举行AI主题会议,中方呼吁深化国际合作。 5日,中国、赞比亚常驻联合国代表团和中国科学技术协会...
5年1.3万亿!Anthrop... ▲头图由AI辅助生成 智东西 作者 | 陈佳 编辑 | 漠影 智东西5月6日消息,今日,据The I...
美政府为何酝酿收紧AI监管? 据美国多家媒体日前报道,美国政府正考虑对人工智能(AI)模型在公开发布前实施安全审查,并酝酿通过行政...
从无人机到卡车,大疆第二曲线“... 【文/观察者网 张家栋 编辑/高莘】 据《南华早报》5月5日报道,大疆旗下智能驾驶品牌卓驭(ZYT...
东京审判28名甲级战犯罪行全记... 1946年5月3日远东国际军事法庭在东京开庭11国法官,818次开庭419名证人出庭4336件证据4...
男子称爷爷向天津美院捐赠40件... 近日,康先生在社交平台发布视频称,其爷爷康建章于1996年向天津美术学院捐赠的40件书画作品,自己希...
以军总参谋长:在伊朗仍有一系列... △以色列国防军总参谋长扎米尔(资料图)当地时间5月6日,以色列国防军总参谋长扎米尔表示,以军与美军的...