MHA+MYCAT 高可用架构
架构图如下:
本次是4服务器架构
如下
环境:
centos 7.2 x64
mariadb 10.4
MHA 5.7
MyCat 1.6.7
IP规划
IP | 功能 |
10.1.41.166 VIP | |
10.1.41.167 | master,mycat,mha.node |
10.1.41.168 | slave(master),mha.node |
10.1.41.165 | slave,mycat,keepalived |
10.1.41.169 | slave,mycat,keepalived |
说明:keepalived 主要做mycat的高可用,mysql数据库的高可用通过 MHA 实现
master 库主要负责写,其他三个slave负责读,如果mycat所在服务器压力过大,建议单独分出两台机器运行mycat服务
注意:如果是阿里云的ECS,需要单独购买SLB,因为阿里云的机器用不了keepalived和VIP
第一步:安装MySQL 并配置主从同步
主库需要添加额外的内容:
在[mysqld]段的最后面添加如下内容
innodb_file_per_table = ON skip_name_resolve = ON server-id = 1 relay-log = relay-log log-bin = master-log
从库添加:
innodb_file_per_table = ON skip_name_resolve = ON server-id = 2 #注意:其他从库的id不能相同 relay-log = relay-log log-bin = master-log read-only = 1 relay-log-purge = 0
2.在主库创建mha授权账号和 主从同步账号
grant replication slave,replication client on *.* to 'xtgss'@'10.1.41.%' identified by 'replpass6689' ; grant all on *.* to 'mhaadmin'@'10.1.41.%' identified by 'mhapass' ;
然后查看信息
show master status;
在从库执行
change master to master_host='10.1.41.167', master_port=3306, master_user='xtgss', master_password='replpass6689', master_log_file='master-log.000001',master_log_pos=2719; start slave; show slave status\G
2,安装MHA
所有节点都 安装mha4mysql-node ,管理节点安装在 10.1.41.168 这个机器
并且所有节点都要ssh 免密登录
mha.cnf 文件如下内容:
[server default] user=mhaadmin password=mhapass6689 manager_workdir=/data/masterha/app1 manager_log=/data/masterha/app1/manager.log remote_workdir=/data/masterha/app1 ssh_user=root ssh_port=65534 repl_user=xtgss repl_password=replpass6689 ping_interval=1 [server1] hostname=10.1.41.167 candidate_master=1 [server2] hostname=10.1.41.168 candidate_master=1 [server3] hostname=10.1.41.165 [server4] hostname=10.1.41.169
执行ssh 检查:
masterha_check_ssh -conf=/etc/mhaconf/mha.cnf
然后执行 repl 检查:
masterha_check_repl -conf=/etc/mhaconf/mha.cnf
等上面两个检查都通过之后,开始运行mha守护进程
masterha_manager -conf=/etc/mhaconf/mha.cnf
部署mycat:
需要安装jdk 1.8
然后解压到 /usr/local/ 目录下
创建logs 目录
mkdirp -pv /usr/local/mycat/logs
把相应的配置复制到 conf 目录下,然后根据实际环境修改配置
部署keepalived
yum install keepalived/* -y
把keepalived.conf 复制到 /etc/keepalived/ 目录下,修改一下模式 ,
主节点为 state MASTER ,priority 100
从节点为 state BACKUP ,priority 88
然后启动keepalived