MHA+MySQL实现mysql高可用
发布时间:2023-02-16 13:19:04 所属栏目:MySql 来源:互联网
导读:1. MHA的简单介绍 简介 MHA(Master High Availability)目前在MySQL高可用方面是一个相对成熟的解决方案,它由日本DeNA公司youshimaton(现就职于Facebook公司)开发,是一套优秀的作为MysqL高可用性环境下故障切换和主从提升的高可用软件。在MysqL故障切换
1. MHA的简单介绍 简介 MHA(Master High Availability)目前在MySQL高可用方面是一个相对成熟的解决方案,它由日本DeNA公司youshimaton(现就职于Facebook公司)开发,是一套优秀的作为MysqL高可用性环境下故障切换和主从提升的高可用软件。在MysqL故障切换过程中,MHA能做到在0~30秒之内自动完成数据库的故障切换操作,并且在进行故障切换的过程中,MHA能在最大程度上保证数据的一致性,以达到真正意义上的高可用 已托管至github,对应地址如下 manager地址,https://github.com/yoshinorim/mha4MysqL-manager node地址,https://github.com/yoshinorim/mha4MysqL-node 截止本文档编写时间为止,最新版本为0.58 优点 可参考官方文档详细介绍 https://github.com/yoshinorim/mha4MysqL-manager/wiki/Advantages 大致总结如下: 1、主从切换非常迅速,通常10-30s 2、最大程度上解决数据一致性的问题 3、不需要修改当前已有的MysqL架构和配置 4、不需要另外多余的服务器 5、没有性能损耗 6、没有存储引擎限制 2. MHA的搭建概述 数据库架构:一主两从 master:192.168.142.48 slave1:192.168.142.49 slave2:192.168.142.50 mha架构: manager:192.168.142.49 node:192.168.142.48,192.168.142.49,192.168.142.50 keepalived架构 VIP:192.168.142.235 节点:192.168.142.48,192.168.142.49 搭建环境版本 数据库版本:5.7.18,5.7.18-log MysqL Community Server (GPL) MHA版本:v0.58,mha4MysqL-manager-0.58 + mha4MysqL-node-0.58 Keepalived:keepalived-1.4.3 Linux主机:centos7.2 主机和安装服务列表 主机IP 安装服务 192.168.142.48 MysqL master ; mha node ; keepalived 192.168.142.49 MysqL slave ; mha node && mha manager ; keepalived 192.168.142.50 MysqL slave ; mha node 搭建大体步骤 1、keepalived的搭建 2、linux机器之间配置互信 3、MysqL主从环境的搭建 4、MHA的安装和配置 5、配置文件测试 测试ssh连通性 测试集群中的主从复制 6、启动MHA管理节点 3. keepalived的搭建 这里使用rpm方式安装,分别在192.168.142.48和192.168.142.49上安装keepalived,也可使用源码编译 1、安装 yum install keepalived -y 2、配置文件修改 vim /etc/keepalived/keepalived.conf ! Configuration File for keepalived global_defs { notification_email { root@localhost } notification_email_from Alexandre.Cassen@firewall.loc smtp_server 127.0.0.1 smtp_connect_timeout 30 router_id LVS_DEVEL } vrrp_instance VI_1 { state MASTER interface eth0 virtual_router_id 55 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.142.235 } } note:其中主MASTER优先级高(100),BACKUP优先级(90)低一些 3、启动、关闭、查看 systemctl start keepalived systemctl stop keepalived systemctl status keepalived 4. linux机器之间配置互信 服务器之间建立ssh互信的方式很多,这里介绍一种私以为比较便捷的创建方式 1、创建秘钥(回车连续三次即可) [root@192-168-142-48]# ssh-keygen -t rsa 2、进入.ssh目录查看文件 [root@192-168-142-48]# cd /root/.ssh/ && ls id_rsa id_rsa.pub 3、修改id_rsa.pub名称 mv id_rsa.pub authorized_keys 4、将/root/.ssh文件夹拷贝到192.168.142.49和192.168.142.50即可建立三台机器之间的互信(如果端口不是默认22,需要额外指定参数 -P port) scp -P 8822 -r /root/.ssh 192.168.142.49:/root/ scp -P 8822 -r /root/.ssh 192.168.142.50:/root/ 5. MysqL主从环境的搭建 1、手动搭建或者自动化脚本分别在三台主机上配置MysqL实例,这里可参考MysqL单实例搭建的方法,不在赘述 2、每台主机数据库实例上配置复制用户l和监控用户 1、复制用户 GRANT SUPER, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'repl'@'192.168.142.%' IDENTIFIED BY '123456';FLUSH PRIVILEGES; 2、监控用户 GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.142.%' IDENTIFIED BY '123456';FLUSH PRIVILEGES; 3、配置从同步 1、master上执行 show master status;,记录对应File名称和Position列的数字,这里为 MysqL-bin.000001 154 2、slave1和slave2上分别执行 CHANGE MASTER TO MASTER_HOST='192.168.142.48',MASTER_USER='repl',MASTER_PASSWORD='123456',MASTER_PORT=5700,MASTER_LOG_FILE='MysqL-bin.000001',MASTER_LOG_POS=154; 6. MHA的安装和配置 可参考官方文档详细介绍 https://github.com/yoshinorim/mha4MysqL-manager/wiki/Installation 1、每台主机上安装node节点,这里使用rpm方式安装,也可使用源码编译 1、下载 https://github.com/yoshinorim/mha4MysqL-node/releases 选择对应的rpm包下载 2、安装依赖 yum install perl-dbd-mysql -y 3、安装node节点 rpm -ivh mha4MysqL-node-0.58-0.el7.centos.noarch.rpm 2、其中一台主机(192.168.142.49)安装manager节点即可,这里使用rpm方式安装,也可使用源码编译 1、下载 https://github.com/yoshinorim/mha4MysqL-manager/releases 选择对应的rpm包下载 2、安装依赖 yum install perl-dbd-mysql perl-Config-Tiny perl-Log-dispatch perl-Parallel-ForkManager -y 3、安装manager节点 rpm -ivh mha4MysqL-manager-0.58-0.el7.centos.noarch.rpm 3、创建MHA的配置文件 app1.cnf,个人安装配置实例完整版已经放置到github,可参考查看,如下为链接 https://github.com/dwwang1992/configs-of-MHA/blob/master/app1.cnf 4、master_ip_failover_script对应的脚本 master_ip_failover,个人安装配置实例完整版已经放置到github,可参考查看,如下为链接 https://github.com/dwwang1992/configs-of-MHA/blob/master/master_ip_failover 5、master_ip_online_change_script对应的脚本 master_ip_online_change,个人安装配置实例完整版已经放置到github,可参考查看,如下为链接 https://github.com/dwwang1992/configs-of-MHA/blob/master/master_ip_online_change 6、report_script对应的脚本 send_report,个人安装配置实例完整版已经放置到github,可参考查看,如下为链接 https://github.com/dwwang1992/configs-of-MHA/blob/master/send_report (编辑:甘南站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |