1.简介
Percona XtraDB Cluster是一个完全开源的 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:
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:
- 三节点宕机一个节点,集群正常运行,其他俩个节点陆续写入数据。然后集群整个宕机,此时启动集群,集群不知道哪个节点是最新的数据,这时需要我们根据日志手动选择主节点,选择主节点后集群将自动恢复。