# SLin-Mysql-MHA **Repository Path**: ShangLinKuaiLe/slin-mysql-mha ## Basic Information - **Project Name**: SLin-Mysql-MHA - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-06-18 - **Last Updated**: 2021-06-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 题目分析、实现思路、环境介绍。 l 集群环境 * 4台 * 1主,2从,1MHA 一主两从的半同步复制功能 MHA实现主机出故障,从库能自动切换功能 l 实验环境介绍 * 涉及的各个软件的版本 (centos7.5,vm12,mha5.8 manger,mha5.8node,epel-release-latest-7.noarch,secureCRT8.5) * 介绍各个机器对应角色&作用&ip地址 机器名称 IP 角色 权限 备注 aproxy 192.168.72.95 MHA Manager 高可用监控 监控管理所有(主、从)节点 amaster 192.168.72.90 数据库主服务器 可读写、主库 开启bin-log、relay-log、关闭relay-log-purge aslave1 192.168.72.91 数据库从服务器1 只读、从库 开启bin-log、relay-log、关闭relay-log-purge aslave2 192.168.72.92 数据库从服务器2 只读、从库 开启bin-log、relay-log、关闭relay-log-purge 2 主库新建商品表 添加数据,演示半同步复制 * 先查询主从库数据 ,目前都是空的 * 添加后,再次查询主从库数据 * 查看log,是否显示半同步 cat /var/log/mysqld.log Start semi-sync binlog_dump to slave 3 主机出故障,从库能自动切换功能 检测 masterha_check_repl --conf=/etc/mha/app1.cnf 启动 nohup masterha_manager --conf=/etc/mha/app1.cnf --remove_dead_master_conf --ignore_last_failover < /dev/null > /var/log/mha_manager/app1/manager.log 2>&1 & 查看状态 masterha_check_status --conf=/etc/mha/app1.cnf 配置了虚拟ip: ifconfig eth1:1 192.168.72.200/24 ip add |grep "192.168.72.200" * 关闭 主服务器,查看MHA服务器是否正常切换 关闭90-IP mysql : systemctl stop mysqld 检测: masterha_check_repl --conf=/etc/mha/app1.cnf 再查看新主机的,从机的状态信息 查看新主机虚拟ip:ip add |grep "192.168.72.200" App1:mysql Master failower 之前主ip(之前主ip:3306) to 切换后ip(切换后ip:3306) succeeded * 在切换后的主节点机器上查看状态展示效果 进到数据库 ,show master status\G; 从库 show slave status\G; * 在切换后的主节点机器数据库添加数据,分别查询主从库数据一致 配置了虚拟ip: ifconfig eth1:1 192.168.72.200/24 ip add |grep "192.168.72.200" -------------------------------- create TABLE position ( id int(20), name varchar(50), salary varchar(20), city varchar(50) ) ENGINE=innodb charset=utf8; insert into position values(1, 'Java', 13000, 'shanghai'); insert into position values(2, 'DBA', 20000, 'beijing'); ----------------------------- create TABLE position_detail ( id int(20), pid int(20), description text ) ENGINE=innodb charset=utf8; insert into position_detail values(1, 1, 'Java Developer'); insert into position_detail values(2, 2, 'Database Administrator');