(5.15)mysql高可用系列——MHA实践

关键词:MHA,mysql mha

【1】需求

  采用mysql技术,实现MHA高可用主从环境,预计未来数据量几百G

  MHA概念参考:MYSQL高可用技术概述

【2】环境技术架构

  操作系统:5台 centos7.5

  数据库版本:mysql5.7.24

  MHA 软件  :MHA 0.58

  数据库架构:基于MHA 软件实现主从复制,采用GTID+无损同步复制技术,双主多从。

项目具体部署信息
角色 ip地址 主机名 server_id 类型
Monitor host 192.168.1.201 db1   监控复制组
master 192.168.1.202 db2 2023306 写入
slave1 192.168.1.203 db3 2033306 读(备用master)
slave2 192.168.1.204 db4 2043306
slave3 192.168.1.205 db5 2053306

 

 

 

 

 

 

 

【3】实践环境准备

【3.1】host

echo "127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4">> /etc/hosts
echo "::1 localhost localhost.localdomain localhost6 localhost6.localdomain6" >>/etc/hosts

echo "192.168.1.201 db1" >>/etc/hosts
echo "192.168.1.202 db2" >>/etc/hosts
echo "192.168.1.203 db3" >>/etc/hosts
echo "192.168.1.204 db4" >>/etc/hosts
echo "192.168.1.205 db5" >>/etc/hosts

【3.2】my.cnf

#replication_new
log_bin=/mysql/log/3306/mysql-bin #开启binlog
log_bin_index=/mysql/log/3306/mysql-bin.index
binlog_format=row
binlog_rows_query_log_events=on
max_binlog_size=2048

bind-address=0.0.0.0
server_id=2013306   #从库务必记得修改
expire_logs_days=7    #超过7天的binlog清理
innodb_support_xa=1
binlog_cache_size=1M
log_bin_trust_function_creators=1    #同步存储过程、函数、触发器
innodb_flush_log_at_trx_commit=1
sync_binlog=1
transaction-isolation=read-committed

#slave parameter 如果是从库,务必放开
#relay_log=/mysql/log/3306/relaylog/mysql-relay.log
#read_only=1  
#slave-parallel-type=LOGICAL_CLOCK
#slave-parallel-workers=4
#master_info_repository=table #master_info 会记录到 mysql.slave_master_info
#relay_log_info_repository=table #relay_log 会记录到,mysql.slave_relay_log_info
#relay_log_recovery=1
#slave_skip_errors=ddl_exist_errors
#slave_preserve_commit_order=1

#5.7的增强半同步
#如果是5.7,参数前面加上loose_,如下列,如果是5.6 则直接使用 rpl_semi_sync_master_enabled=1 之类的就好了。
#我这里是5.7就直接做增强半同步了(loseless Semisynchronous )

plugin_dir=/mysql/app/mysql/lib/plugin/
plugin_load=rpl_semi_sync_master=semisync_master.so;rpl_semi_sync_slave=semisync_slave.so
loose_rpl_semi_sync_master_enabled=1 #MySQL开启主的半同步复制(rpl_semi_sync_master_enabled) 
loose_rpl_semi_sync_slave_enabled=1 #MySQL5.6开启从的半同步复制 
loose_rpl_semi_sync_master_timeout=5000 #超时5秒,切回异步 
rpl_semi_sync_master_wait_for_slave_count=1 #至少收到1个slave发会的ack 
rpl_semi_sync_master_wait_point=AFTER_SYNC #MySQL 5.7的方法,AFTER_SYNC(default value,增强半同步) & AFTER_COMMIT(传统半同步)
#GTID mode
gtid_mode=on
enforce_gtid_consistency=1
log-slave-updates=1

 

你可能感兴趣的:((5.15)mysql高可用系列——MHA实践)