Percona xtradb 群集的快速入门指南

2019年2月19日

Percona xtradb 群集的快速入门指南

Percona xtradb 群集的过程。

示例假定有三个 percona xtradb 群集节点, 作为试用和测试的常见选择:

74.207.253.220 percona1

35.220.181.3 percona2
35.234.3.134 percona3

节点 主机 Ip

节点1 pxc1 74.207.253.220
节点2 pxc2 35.220.181.3
节点3 pxc3 35.234.3.134

注意

避免创建具有两个或任意数量节点的群集, 因为这会导致大脑分裂.有关详细信息, 请参阅群集故障转移.

群集故障转移
群集成员身份仅由节点连接到群集的其余部分来确定。没有明确定义所有可能的群集节点列表的配置设置。因此, 每次节点加入群集时, 群集的总大小都会增加, 当节点离开时 (正常), 大小就会减小。
群集的大小用于确定达到法定人数所需的投票。当一个或多个节点被怀疑不再是群集的一部分 (它们不响应) 时, 将进行法定人数投票。这无响应超时是 wsrep_provider_options 程序 _ option (默认 5秒) 中的 evs.suspect_timeout . 进出请署 _ 超时设置, 当节点不正常地下降时, 写入操作将在比超时稍长。
一旦确定一个或多个节点断开连接, 其余的节点就投了法定人数的票, 如果断开连接之前的大多数节点仍然连接, 那么该分区就会保持向上。在网络分区的情况下, 某些节点在网络断开连接的每一侧都处于活动状态和活动状态。在这种情况下, 只有仲裁将继续。没有仲裁的分区将更改为非主要状态。
因此, 在2个节点群集中不可能有安全的自动故障转移, 因为一个节点的故障将导致剩余节点成为非主节点。此外, 任何具有偶数节点的群集 (例如两个不同交换机中的两个节点) 都有可能出现大脑分裂的情况, 如果它们之间的连接丢失, 两个分区都无法保留仲裁, 因此它们都成为非初级。
因此, 对于自动故障转移, 建议使用3s 规则。它适用于基础结构的各个级别, 具体取决于群集的分布程度, 以避免单点故障。例如:
单个交换机上的群集应具有3个节点
跨越交换机的群集应在至少3个交换机之间均匀分布
跨网络群集应至少跨越3个网络
跨数据中心的群集应跨越至少3个数据中心
这些规则将防止大脑分裂的情况, 并确保自动故障转移正常工作。
使用仲裁员
如果添加第三个节点、交换机、网络或数据中心的成本太高, 则应使用仲裁员。仲裁员是群集的有投票权的成员, 可以接收和中继复制, 但它不保留任何数据, 并运行自己的守护进程而不是mysqld。即使在第三个位置放置一个仲裁员, 也可以为仅分布在两个节点上的群集添加分裂大脑保护。
恢复非主群集
请务必注意, 3s 规则仅适用于自动故障转移。在2节点群集的情况下 (或在某些其他中断导致少数节点处于活动状态的情况下), 一个节点的故障将导致另一个节点成为非主要操作和垃圾操作。但是, 您可以使用以下命令从非主状态恢复节点:

SET GLOBAL wsrep_provider_options='pc.bootstrap=true';

这将告诉节点 (以及仍连接到其分区的所有节点) 它可以成为主群集。但是, 只有当您确定没有其他分区在主分区中运行时, 这一点才是安全的, 否则 percona xtradb 群集将允许这两个分区发生分歧 (并且您最终将得到两个不可能自动重新合并的数据库)。
例如, 假设有两个数据中心, 其中一个是主数据中心, 一个是用于灾难恢复的数据中心, 每个数据中心的节点数量相等。当一个额外的仲裁员节点仅在主数据中心运行时, 将提供以下高可用性功能:
主数据中心或辅助数据中心内的任何单个节点的自动故障转移
辅助数据中心的故障不会导致主数据中心下降 (因为仲裁员的原因)
主数据中心的失败将使辅助数据中心处于非主状态。
如果已执行灾难恢复故障转移, 则可以告诉辅助数据中心使用单个命令自行引导, 但灾难恢复故障转移仍在您的控制范围内。
Other Reading
PXC - Failure Scenarios with only 2 nodes

以下过程提供了一个概述, 其中包含每个步骤的详细信息链接:
1. 在所有节点上安装 percona xtradb 群集, 并为它们设置根访问权限。

建议从官方 percona 存储库安装:

安装 Percona

2. 配置具有写集复制所需的相关设置的所有节点 。。
这包括通往 galera 库的路径、其他节点的位置等。

3. 引导第一个节点来初始化群集。
这必须是主数据库的节点, 该节点将用作群集的数据源。

4. 将其他节点添加到群集。
加入群集的新节点上的数据将被覆盖, 以便将其与群集同步。

5. 验证复制.
尽管群集初始化和节点设置是自动执行的, 但最好确保一个节点上的更改实际复制到其他节点。

6. Install ProxySQL.
若要完成群集的部署, 需要一个高可用性代理。我们建议在客户端节点上安装proxysql,以便在整个群集上高效管理工作负载, 而无需对生成查询的应用程序进行任何更改。

Percona 监控和管理

percona 监视和管理是管理和监视 percona xtradb 群集性能的最佳选择。它为群集提供了可见性, 并实现了高效的故障排除。

没有评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注