Percona XtraDB Cluster双节点故障的情况
来源:互联网 发布:淘宝天猫优惠券兼职 编辑:程序博客网 时间:2024/05/20 01:45
1. 环境
OS:Redhat 6.5
Cluster:Percona-XtraDB-Cluster5.6.22-25
主节点:
hostname:mysql-pxc01
ipaddr:192.168.163.6
备节点:
hostname:mysql-pxc02
ipaddr:192.168.163.7
2. 查看当前状态
1. 查看主节点状态
2. 查看备节点状态
3. 断开节点通信
1) 在主节点上运行
iptables -A INPUT -d 192.168.163.7 -s 192.168.163.6 -jREJECT
iptables -A OUTPUT -d 192.168.163.7 -s 192.168.163.6 -jREJECT
2) 查看主节点iptables
3) 查看主节点状态
4) 查看备节点状态
当网络通信断开的时候,由于未满足剩余可用节点数大于原集群节点数目,因此主备节点都降级为non-primary状态。
4. 通信断开状态下运行命令
在节点状态为non-primary的节点中运行插入操作
返回Unknown command的错误。
5. 更改节点状态启动
Ø PerconaXtraDB cluster中有两种参数可用于在通信断开时防止节点降级为non-primary状态。分别为pc.ignore_quorum和pc.ignore_sb。
Ø pc.ignore_quorum参数设置为true的时候,节点忽略quorum算法,节点正常运行。
Ø pc.ignore_sb是当节点通讯关闭,发生脑裂时,忽略为防止脑裂时数据不一致而无法执行语句的机制,可以在各个节点正常运行命令。
我们来看下相关参数的具体作用。
6. pc.ignore_quorum
1) 我们将节点状态置为正常
2) 在/etc/my.cnf中加入参数
wsrep_provider_options = "pc.ignore_quorum =true"
重启各个节点数据库
3) 查看配置参数成功
4) 将节点通信关闭
iptables -A INPUT -d 192.168.163.7 -s 192.168.163.6 -j REJECT
iptables -A OUTPUT -d 192.168.163.7 -s 192.168.163.6 -j REJECT
5) 查看节点状态
可发现cluster size将为1,而节点状态并没有降级
6) 在各个节点可以正常进行sql操作,我们在不同的节点插入不同的数据
主节点
备节点
可以看到双节点可以进行相关的操作。
7) 我们来恢复网络通信来看看节点之间会发生什么
发现即使恢复通信,节点不会自动恢复到同步状态,不会发生数据同步,双节点各自形成一个cluster环境。
如果要恢复集群模式,只能通过SST方式将数据同步,但是会造成一个节点的数据丢失!
7. pc.ignore_sb
1) 恢复集群环境,我们在/etc/my.cnf中添加参数
wsrep_provider_options = “pc.ignore_sb = true”
重启数据库
2) 查看参数是否生效
3) 断开连接
iptables -A INPUT -d 192.168.163.7 -s 192.168.163.6 -j REJECT
iptables -A OUTPUT -d 192.168.163.7 -s 192.168.163.6 -jREJECT
4) 查看节点状态
主节点
备节点
两个节点都没有降级成为non-primary状态。
5) 向两个节点中插入不同的数据后将状态置为正常
主节点
备节点比主节点多插入数据
主节点
iptables -D INPUT -d 192.168.163.7 -s 192.168.163.6 -j REJECT
iptables -D OUTPUT -d 192.168.163.7 -s 192.168.163.6 -jREJECT
6) 集群没有恢复到原来状态
7) 重启备节点
由于备节点多插入数据,seqno比主节点高因此重启失败,节点间无法重新构成cluster。只能删除数据重新进行SST同步。会造成备节点的数据丢失!
为防止双节点的脑裂问题和数据不同步的问题,最好是能够布置成3个及以上节点的cluster环境。
如果没有多余资源布置一个datacenter,我们可以使用arbitrator(仲裁)来防止以上情况的发生,这个在后续中介绍。
参考文档http://www.percona.com/blog/2012/07/25/percona-xtradb-cluster-failure-scenarios-with-only-2-nodes/
- Percona XtraDB Cluster双节点故障的情况
- Percona Xtradb Cluster的设计与实现
- Percona Xtradb Cluster的设计与实现
- 使用sysbench检测HAProxy对于Percona XtraDB Cluster的负载均衡和故障检测
- Percona XtraDB Cluster介绍
- percona xtradb cluster安装
- Percona XtraDB Cluster 安装
- Percona XtraDB Cluster 简介
- Percona XtraDB Cluster 初探
- Percona XtraDB Cluster 5.5.30
- Percona XtraDB Cluster安装部署
- percona xtradb cluster安装步骤
- percona-xtradb-cluster 部署笔记
- Percona XtraDB Cluster规划实施
- 基于HAproxy的percona xtradb cluster的负载
- 移动基于Percona XTRADB Cluster的大数据解决方案
- 一次惊心动魄的Percona XTRADB Cluster数据修复过程【MySQL】
- 移动基于Percona XTRADB Cluster的大数据解决方案
- java正则表达式语法
- ns2安装在win7+cygwin过程
- [leetcode]Maximum Subarray
- SG函数模板
- MySQL关联left join 条件on与where不同
- Percona XtraDB Cluster双节点故障的情况
- Prime算法
- Linux环境变量
- 提高第4课时,自测
- SCP 断点续传!
- QT 打开txt文件以及出现的乱码问题
- linux命令之 cut
- noj算法题——素数环
- Java基础