MySQL高可用之双主复制模式

MySQL双主模式高可用实现

生产案例:
VIP:10.105.98.211
MASTER
HOSTNAME IPADDR PORT
my-prod01.oracle.com 192.168.10.97 3306
my-prod02.oracle.com 192.168.10.5 3306
SLAVE
HOSTNAME IPADDR PORT
my-em01.oracle.com 10.100.10.10.65 3306

两个主库之间复制模式:半同步复制 主库从库之间复制模式:异步复制

keepalived配置:
[[email protected]]# cat /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {

router_id MySQL-MDS-HA
}
vrrp_instance VI_1 {
state BACKUP
interface eth0
smtp_alert
virtual_router_id 46
priority 100
advert_int 1
# preempt
authentication {
auth_type PASS
auth_pass 1111
}
unicast_src_ip 192.168.10.97
unicast_peer {
192.168.10.5
}
virtual_ipaddress {
10.105.98.211/16 #VIP
}
}

virtual_server 10.105.98.211 3306 {
delay_loop 2
lb_algo wrr
lb_kind DR
persistence_timeout 60
protocol TCP
real_server 192.168.10.97 3306 {
weight 3
notify_down "/etc/keepalived/shutdown_keepalived.sh"
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 3306
}
}
}

[[email protected] ~]# cat /etc/keepalived/keepalived.conf
! Configuration File for keepalived

global_defs {

router_id MySQL-MDS-HA
}
vrrp_instance VI_1 {
state BACKUP
interface eth0
smtp_alert
virtual_router_id 46
priority 80
advert_int 1
# preempt
unicast_src_ip 192.168.10.5
unicast_peer {
192.168.10.97
}
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.105.98.211/16 #VIP
}
}

virtual_server 10.105.98.211 3306 {
delay_loop 2
lb_algo wrr
lb_kind DR
persistence_timeout 60
protocol TCP
real_server 192.168.10.5 3306 {
weight 3
notify_down "/etc/keepalived/shutdown_keepalived.sh"
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 3306
}
}
}

[[email protected] ~]#cat /etc/keepalived/shutdown_keepalived.sh
systemctl stop keepalived
半同步超时时间1秒
[email protected](none) 05:55:09>show variables like ‘%semi%‘;
+------------------------------------+-------+
| Variable_name | Value |
+------------------------------------+-------+
| rpl_semi_sync_master_enabled | ON |
| rpl_semi_sync_master_timeout | 1000 |
| rpl_semi_sync_master_trace_level | 32 |
| rpl_semi_sync_master_wait_no_slave | ON |
| rpl_semi_sync_slave_enabled | ON |
| rpl_semi_sync_slave_trace_level | 32 |
+------------------------------------+-------+
6 rows in set (0.00 sec)

[email protected](none) 05:55:16> show global status like ‘%semi%‘;
+--------------------------------------------+-------------+
| Variable_name | Value |
+--------------------------------------------+-------------+
| Rpl_semi_sync_master_clients | 1 |
| Rpl_semi_sync_master_net_avg_wait_time | 1309 |
| Rpl_semi_sync_master_net_wait_time | 99361626284 |
| Rpl_semi_sync_master_net_waits | 75893320 |
| Rpl_semi_sync_master_no_times | 6 |
| Rpl_semi_sync_master_no_tx | 620 |
| Rpl_semi_sync_master_status | ON |
| Rpl_semi_sync_master_timefunc_failures | 0 |
| Rpl_semi_sync_master_tx_avg_wait_time | 1420 |
| Rpl_semi_sync_master_tx_wait_time | 86802817655 |
| Rpl_semi_sync_master_tx_waits | 61111551 |
| Rpl_semi_sync_master_wait_pos_backtraverse | 237 |
| Rpl_semi_sync_master_wait_sessions | 0 |
| Rpl_semi_sync_master_yes_tx | 61234280 |
| Rpl_semi_sync_slave_status | ON |
+--------------------------------------------+-------------+
15 rows in set (0.00 sec)

优缺点:
双主模式之双主异步复制模式
存在的风险:
假定主库1的keepalived优先级高,在主库1自增字段到120,但是因为延迟,主库2只同步到100,这时候主库1挂了,vip漂移到主库2上,
因为主库2的自增字段只到了100,所以id可以从101-120被使用,此时主库1重新启动之后,主库1上101-120的数据就因为id冲突,
不能同步到主库2。
1:keepalived 配置state BACKUP模式,避免角色竞争;配置优先级priority

2:该模式需要配置auto_increment_increment auto_increment_offset
auto_increment_offset表示自增长字段从哪个数开始,取值范围是1 .. 65535
auto_increment_increment表示自增长字段每次递增的量,其默认值是1,取值范围是1 .. 65535
在主主同步配置时,需要将两台服务器的auto_increment_increment增长量都配置为2,而要把auto_increment_offset分别配置为1和2.

这样才可以避免两台服务器同时做更新时自增长字段的值之间发生冲突。
https://m.aliyun.com/jiaocheng/1121889.html
双主模式之双主半同步复制模式
存在的风险:

原文地址:https://www.cnblogs.com/elontian/p/9910466.html

时间: 2024-08-15 20:09:07

MySQL高可用之双主复制模式的相关文章

MySQL高可用方案——双主

MySQL的高可用方案有很多种,双主.MHA.MMM等等,这里只是写下最简单的双主这种高可用方案. 一.配置MySQL互为主从 1.环境准备 系统 IP 主机名 服务 Centos 7.5 192.168.20.2 mysql01 MySQL+keepalived Centos 7.5 192.168.20.3 mysql02 MySQL+keepalived 注:MySQL已部署完成,可参考博文Centos部署MySQL 5.7进行部署. 2.开启二进制日志及中继日志 #主机mysql01配置

Nginx+keepalived高可用(双主模式)

负载均衡技术对于一个网站尤其是大型网站的web服务器集群来说是至关重要的!做好负载均衡架构,可以实现故障转移和高可用环境,避免单点故障,保证网站健康持续运行.由于业务扩展,网站的访问量不断加大,负载越来越高.现需要在web前端放置nginx负载均衡,同时结合keepalived对前端nginx实现HA高可用.介绍下Nginx和keepalive1.Nginx Nginx 是一个很强大的高性能Web和反向代理服务器,它具有很多非常优越的特性:Nginx作为负载均衡服务器:Nginx 既可以在内部直

nginx+keepalived高可用及双主模式

高可用有2中方式. 1.Nginx+keepalived 主从配置 这种方案,使用一个vip地址,前端使用2台机器,一台做主,一台做备,但同时只有一台机器工作,另一台备份机器在主机器不出现故障的时候,永远处于浪费状态,对于服务器不多的网站,该方案不经济实惠. 2.Nginx+keepalived 双主配置 这种方案,使用两个vip地址,前端使用2台机器,互为主备,同时有两台机器工作,当其中一台机器出现故障,两台机器的请求转移到一台机器负担,非常适合于当前架构环境. 1.Nginx+keepali

haproxy高可用以及双主模式(二)

haproxy主备 虚拟VIP:192.168.33.130 把haproxy-01的配置文件拷贝到haproxy-02机器相应的目录即可 [email protected] haproxy]# scp haproxy.cfg [email protected]:/etc/haproxy/ haproxy.cfg                                     100% 3520     3.4KB/s   00:00 启动haproxy-02服务 [[email pro

L10.2 keepalive 实现haproxy高可用(双主模型)

keepalived实现haproxy高可用. haproxy实现RS负载均衡. 说明: 1,当keepalive节点状态master时,haproxy应该是start状态,backup为restart,fault为stop状态:(注意脚本监测权限减5,这样会有数字计算优先级方面的问题,因此在backup状态也使用restart haproxy) 2,对haproxy的start,restart,stop,都将用脚本的方式实现,在keepalived配置中调用脚本: 3,我们不只对keepali

keepalived实现nginx的高可用(双主模型)

实验环境: RS1:rip(172.16.125.7),安装httpd软件包: RS2:rip(172.16.125.8),安装httpd软件包: director1(7-1.lcs.com):vip(172.16.125.100),dip(172.16.125.5),安装nginx.keepalived软件包. director2(7-2.lcs.com):vip(172.16.125.110),dip(172.16.125.6),安装nginx.keepalived软件包. 首先关闭所有节点

mysql高可用方案之主主架构(master-master)

mysql的主从是将主服务器操作记录写入二进制日志文件,然后通过mysql dump线程将日志传到从服务器中继日志中,从服务器在中继日志读取信息并执行.mysql主主架构原理和主从差不多,只是两台服务器都要开启二进制日志文件,并互相传送给对方读取日志中的内容,使数据同步.两台服务器可以同时读也可以同时写,但不能解决单点故障. 环境规划: 主机名:tong2   IP:192.168.1.248 主机名:tong3   IP:192.168.1.249 数据库:mysql-5.6.21 1.配置服

MySQL高可用方案之多级复制

在大部分场景中我们都是用MySQL主从复制来实现数据库的冗余,这里是用多级复制来处理,多级复制可以快速简单的处理数据库的故障,数据库有A.B.C服务器,正常情况下A为主.B为A的从.C为B的从. A-->B-->C 当A出现问题时,将B设为主,C为B的从,A正常后就为C的从 B-->C-->A 当B出问题后,C为主,A为C的从,B为A的从,如此反复可以快速解决问题 角色 IP 主机名 数据库版本 主 192.168.2.241 db1 5.6.29 备 192.168.2.242

5 keepalived高可用ipvs(主备模式)

keepalived最初是为了ipvs设计的,实现HA功能.是工作在linux上,实现vrrp协议的软件. vrrp:Virtual Router Redundancy Protocol,虚拟路由冗余协议,解决局域网中配置静态网关出现单点失效现象的路由协议 ipvs实际上是一系列规则,配置即可不需要转移. 轻量级,不需要共享存储时使用. keepalived+nginx keepalived+harproxy ipvs HA 环境:director server :CentOS 6.7 1 yu