架构图如下:
本次是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
mycat权威指南
mha资源包
mycat