1.简介
Percona
Experts in Database Performance Management
Percona delivers enterprise-class support, consulting, managed services, and software for MySQL, PostgreSQL, MongoDB, and other open-source databases across traditional and cloud-based platforms.
Percona XtraDB Cluster 1是一个完全开源的 MySQL 高可用性解决方案。它将Percona Server和Percona XtraBackup与Galera库集成在一起,以实现同步多源复制。
集群 由 节点 组成,其中每个节点包含跨节点的同一组数据同步。推荐的配置是至少有 3 个节点,但您也可以有 2 个节点。每个节点都是一个常规的 MySQL Server 实例(例如,Percona Server)。您可以将现有的 MySQL Server 实例转换为节点,并使用该节点作为基础运行集群。您还可以从集群中分离任何节点并将其用作常规 MySQL 服务器实例。
好处:
当您执行查询时,它会在节点上本地执行。所有数据都在本地可用,无需远程访问。
没有中央管理。您可以在任何时间点松开任何节点,集群将继续运行而不会丢失任何数据。
扩展读取工作负载的好解决方案。您可以对任何节点进行读取查询。
缺点:
供应新节点的开销。添加新节点时,它必须从现有节点之一复制完整数据集。如果是 100GB,则复制 100GB。
这不能用作有效的写入缩放解决方案。当您将写入流量运行到 2 个节点与所有流量都运行到 1 个节点时,写入吞吐量可能会有一些改进,但您不能期望太多。所有写入仍然必须在所有节点上进行。
您有多个数据副本,对于 3 个节点,您有 3 个副本。
以上简介来自于官方文档机器翻译
2.从开源应用商店一键安装
在开源应用商店中搜索 mysql-percona-cluster 进行一键安装。
3.应用介绍
mysql-percona-cluster 由三个组件组成:
etcd-cluster
pxc-db
pxc-haproxy
etcd-cluster:
提供给 pxc-db 进行服务发现,每个pxc-db 实例都会注册到 etcd-cluster 中。
pxc-db:
提供3副本的Mysql实例。
pxc-haproxy:
检测 pxc-db 服务的健康状态,当 pxc-db 有实例不健康时,会在 pxc-haproxy 中下线。
4. 使用介绍
如何连接:
连接 pxc-haproxy 对内或对外端口,mysql 用户密码在 pxc-db 依赖信息中获取
pxc-db组件可配置变量:
变量名 变量默认值
MYSQL_ROOT_PASSWORD 随机生成
MYSQL_USER admin
MYSQL_PASSWORD 随机生成
XTRABACKUP_PASSWORD Theistare(不可修改)
MYSQL_DATABASE initial
MONITOR_HOST %(不可修改)
5. 使用须知
建议非必须不要重启集群。
如果必须要重启集群,在Rainbond平台上不要点击重启按钮,要先关闭在启动,关闭后要等待2分钟在启动。因为 pod 重启后 IP 会变化, etcd 作为服务发现设置了 TTL 值为:120秒,如果我们马上重启,etcd 中旧的 POD IP 未清除将会导致集群启动失败。
当大家部署完集群后需要扩容 pxc-db 的内存,在组件的伸缩页面根据需求扩容即可,扩容后需重启 pxc-haproxy 获取 pxc-db 的新实例。
6. PXC集群运行机制介绍
例子1:
三节点中有某个节点宕机,不会影响整个集群运行,仍可正常使用。当宕机的节点启动后,将自动加入集群进行数据同步。
例子2:
三节点中宕机了俩个节点,这时集群已经不可用,至少有2个以上的节点才可正常。
例子3:
三节点全部宕机,集群不可用,待所有节点启动后,集群自动恢复正常。
例子4:
三节点宕机一个节点,集群正常运行,其他俩个节点陆续写入数据。然后集群整个宕机,此时启动集群,集群不知道哪个节点是最新的数据,这时需要我们根据日志手动选择主节点,选择主节点后集群将自动恢复。