MHA(Master High Availability)目前在 MySQL 高可用方面是一个相对成熟的解决方案,
是一套优秀的作为 MySQL 高可用性环境下故障切换和主从提升的高可用软件。在
MySQL 故障切换过程中,MHA 能做到在 0~30 秒之内自动完成数据库的故障切换操
作,并且在进行故障切换的过程中,MHA 能在最大程度上保证数据的一致性,以达
到真正意义上的高可用。
该软件由两部分组成:MHA Manager(管理节点)和 MHA Node(数据节点)。MHA Manager
可以单独部署在一台独立的机器上管理多个 master-slave 集群,也可以部署在一台 slave
节
点上。
MHA Node 运行在每台 MySQL 服务器上,MHA Manager 会定时探测集群中的 master
节点,当 master 出现故障时,它可以自动将最新数据的 slave 提升为新的 master,然后将
所有其他的 slave 重新指向新的 master。整个故障转移过程对应用程序完全透明。MHA 可
以
与半同步复制结合起来,目前 MHA 主要支持一主多从的架构,要搭建 MHA,要求一个复制集群
中必须最少有三台数据库服务器,一主二从,即一台充当 master,一台充当备用 master,另
Master 端配置:
yum install perl-DBD-mysql -y
rpm -ivh mha4mysql-node-0.56-0.el6.noarch.rpm
构建免密登陆
ssh-keygen
##生成密钥 ssh-copy-id 172.25.40.2
##给另外两台 mysql 主机分发,这样可以免密连接
ssh-copy-id 172.25.40.3
mysql 主配置文件(/etc/my.cnf)配置
[mysqlnd]
server-id=1
##数据库的唯一标示,不能重复
log-bin=mysql-bin
##二进制记录文件名为 mysql-bin
binlog-do-db=test ##同的库为 test
binlog-ignore-db=mysql ##不同步 mysql
gtid-mode=ON ##打开 gtid 模式
enforce-gtid-consistency=ON##强制使用 gtid 模式
slave-parallel-type=LOGICAL_CLOCK ##打开多线程模式
slave-parallel-workers=16 ##开启 16 个线程
relay_log_info_repository=TABLE
##以表格形式存放 relay-log 信息
relay_log_recovery=ON
rpl_semi_sync_master_enabled=ON ##设置半同步 master 和 slave 开启
rpl_semi_sync_slave_enabled=ON
重新启动两台服务器上的 mysql
/etc/init.d/mysqld restart
进入数据库下载半同步模块
mysql> install plugin rpl_semi_sync_master soname 'semisync_master.so';
Query OK, 0 rows affected (0.50 sec)
mysql> set global rpl_semi_sync_master_enabled=1;
Query OK, 0 rows affected (0.00 sec)
给所创建的认证用户复制权限及 root 用户所有权限的授权
mysql> grant all privileges on *.* to 'root'@'172.168.40.%' identified
'xxxxxxxxxx';
Query OK, 0 rows affected, 1 warning (0.00 sec)by
mysql> grant replication slave on *.* to 'redhat'@'172.168.40.%' identified by
'xxxxxxxxx';
mysql> grant all on *.* to root@'172.25.40.%' identified by 'xxxxxxxx';
Query OK, 0 rows affected, 1 warning (0.38 sec)
Slave(candidate master)端配置:
yum install perl-DBD-mysql -y
rpm -ivh mha4mysql-node-0.56-0.el6.noarch.rpm
构建免密登陆
ssh-keygen
##生成密钥
ssh-copy-id 172.25.40.1 ##给另外两台 mysql 主机分发,这样可以免密连接
ssh-copy-id 172.25.40.3
mysql 主配置文件(/etc/my.cnf)配置。
大型站长资讯类网站! https://www.nzzz.com.cn