likes
comments
collection
share

[ java-003 ] Mysql PXC集群

作者站长头像
站长
· 阅读数 10

本章节介绍Mysql集群方案中的一种,著名的MySQL服务和工具提供商percona实现的percona xtradb cluster,简称PXC

PXC介绍

Percona XtraDB Cluster (PXC) 是一个开源企业 MySQL 解决方案,可帮助您确保应用程序的数据可用性,同时提高安全性并简化在要求最苛刻的公共云、私有云和混合云环境中开发新应用程序的过程

在高可用环境下重启mysql服务需要严格按照顺序来进行,否则会导致mysql集群重启失败宕机

1.在主节点systemctl restart mysql@bootstrap

2.在node节点systemctl restart mysql

主节点判断

  • 所有节点的safe_to_bootstrap值最大的为主节点;
  • 所有节点的safe_to_bootstrap值都为0,查看seqno的值,将seqno值最大的节点的safe_to_bootstrap的值手动改为1,然后启动主节点;
  • 所有节点的safe_to_bootstrap值都为0,且seqno的值相等,可任选一节点将safe_to_bootstrap的值手动改为1,然后启动主节点;
  • 所有节点的safe_to_bootstrap值都为0,且其中两个节点seqno的值最大相等,可对比数据库数据大小,一般最大的那个是主节点

注意事项

  • 集群关闭之后,再启动,谁做第一个节点谁就执行systemctl start mysql@bootstrap;
  • 如果最后关闭的PXC节点是安全退出的,那么下次启动要最先启动这个节点,而且要以主节点启动;
  • 如果最后关闭的PXC节点不是安全退出的,那么要先修改/data/mysql/grastate.dat 文件,把其中的safe_to_bootstrap属性值设置为1,再安装主节点启动;
  • 除了名义上的master之外,其它的node节点只需要启动mysql,即systemctl start mysql

最终连接数据库临时换用北向IP和外部端口的方式,这种虽然能临时解决问题,但是pxc本身应该是高可用和负载的目的,改成这种后,失去了负载的目的,每次写到会到主Node节点上的pod

总结

PXC目前使用的企业不是很多,但我们仍需要了解这种架构的用法和优缺点,特别是节点的对等性问题,会导致节点非常容易出现数据冲突异常问题,在处理新增数据时,尽量不要采用自增主键的方式,可以使用雪花主键。但是更新数据时,无可避免,这时只能采用业务规避的方法,例如在操作时加上redis锁。PXC的强一致性,基本不会产生什么脏数据,这也是其中优点之一

转载自:https://juejin.cn/post/7086805375814467592
评论
请登录