主备机基本介绍
- MySQL自带的主主复制
- Keepalived实现主备机切换
- Iptables作为防火墙
- mysql主主复制
Mysql版本为5.7.43
- 安装msyql(详情见其他操作手册)
- 主备机mysql初始化操作-添加拥有复制权限的用户
命令为
- use mysql
- Update user set password=password(‘Admin!@12qwaszx’) where user = ‘root’;
- grant replication slave on *.* to ‘copy’@’%’ identified by ‘Admin!@12qwaszx’;
- flush privileges;
- 主备机同步复制配置
命令为 vi /etc/my.cnf
主机配置
server-id = 1(该内容在my.cnf有,直接将注释打开就可)
log-bin=mysql-bin(打开binlog日志,是为了主主复制,具体原理自行学习)
auto-increment-increment = 2
auto-increment-offset = 2
binlog-do-db=oms_fsl2 (修改为实际数据库名字,多个写多行)
replicate-do-db=oms_fsl2 (修改为实际数据库名字,多个写多行)
备机配置
server-id = 2(该内容在my.cnf有,直接将注释打开就可)
log-bin=mysql-bin(打开binlog日志,是为了主主复制,具体原理自行学习)
auto-increment-increment = 2
auto-increment-offset = 2
binlog-do-db=oms_fsl2 (修改为实际数据库名字,多个写多行)
replicate-ignore-db=mysql
replicate-do-db=oms_fsl2 (修改为实际数据库名字,多个写多行)
4,主机到备机的同步测试
- 登录主机mysql -u root -p
- show master status(需要注意的是两个字段,File和Position)
- 登录备机mysql -u root -p
stop slave;#先停止slave服务
change master to master_host=’主机ip’,master_port=3306,master_user=’copy’,master_password=’Admin!@12qwaszx’,master_log_file=’mysql-bin.000010’,master_log_pos=106;#复制
注:红色字体部分指的是第二步的主机显示的文件
start slave;#启动slave服务
show slave status \G#查看slave状态
注:红色字体一定要对,蓝色字体一定要yes
- 备机到主机的同步调试
- 登录备机mysql -u root -p
- show master status;
- 登录主机
mysql -u root -p
stop slave;#停止slave服务
change master to master_host=’备机ip’,master_port=3306,master_user=’copy’,master_password=’Admin!@12qwaszx’,master_log_file=’mysql-bin.000004’,master_log_pos=853;#复制
start slave;启动slave服务
show slave status \G#查看slave状态
注:红色字体一定要对,蓝色字体一定要yes
- 测试主主(在主备机都创建表和插入数据,看是否复制)
- keepalived主备切换(注意点:先把防火墙关闭)
主备机实行命令 yum install keepalived -y
vi /ect/keepalived/keepalived
1,主机配置
注意事项:
- router_id 主备一致
- vrrp_strict注释
- 主机写MASTER
- 网卡可以用ip a命令查看
- Virtual_router_id 主备一致
- 权重master必须小于backup
- 填写主机ip
- 必须打开,实现热备
- 虚拟ip自行填写 主备一致
2,备机配置
注意事项:
- router_id 主备一致
- vrrp_strict注释
- 主机写BACKUP
- 网卡可以用ip a命令查看
- Virtual_router_id 主备一致
- 权重master必须小于backup
- 填写主机ip
- 必须打开,实现热备
- 虚拟ip自行填写 主备一致
3,启动主备机keepalived
systemctl start keepalived
systemctl status keeplived
4,相关测试
主备机命令 ip a
看是否虚拟ip在主机上
system stop keepalived
看是否实现了虚拟ip飘逸
- keepalived和iptables(本处防火墙使用iptables)
没有iptables先安装,firewalld和iptables只能用一个
systemctl start iptables #启动防火墙
systemctl status iptables #查看防火墙
iptables -L #查看防火墙规则
iptables -I INPUT -p 112 -d 224.0.0.18 -j ACCEPT #增加keepalived的vrrp协议
iptables -I INPUT -p 51 -d 224.0.0.18 -j ACCEPT #防止脑裂
service iptables save #保存上面两步的规则
systemctl restart iptables #重启防火墙
作者本人菜鸟小白,如有错误麻烦各位大佬纠正,谢谢各位拉!!!