7.2. 检查数据库集群完整性

当您调查 MariaDB Galera 集群的问题时,您可以通过检查每个 Controller 节点上的特定 wsrep 数据库变量来检查整个集群的完整性。

流程

运行以下命令并将 VARIABLE 替换为您要检查的 wsrep 数据库变量:

$ sudo docker exec galera-bundle-docker-0 sudo mysql -B --password="[MYSQL-HIERA-PASSWORD]" -e "SHOW GLOBAL STATUS LIKE 'VARIABLE';"

以下示例演示了如何查看节点的集群状态 UUID:

$ sudo docker exec galera-bundle-docker-0 sudo mysql -B --password="[MYSQL-HIERA-PASSWORD]" -e "SHOW GLOBAL STATUS LIKE 'wsrep_cluster_state_uuid';"

    +--------------------------+--------------------------------------+
    | Variable_name            | Value                                |
    +--------------------------+--------------------------------------+
    | wsrep_cluster_state_uuid | e2c9a15e-5485-11e0-0800-6bbb637e7211 |
    +--------------------------+--------------------------------------+

下表列出了可用于检查集群完整性的 wsrep 数据库变量。

表 7.1. 用于检查集群完整性的数据库变量

变量概述描述

wsrep_cluster_state_uuid

集群状态 UUID

节点所属的集群的 ID。所有节点必须具有相同的集群 ID。具有不同 ID 的节点没有连接到集群。

wsrep_cluster_size

集群中的节点数量

您可以在任何节点上检查它。如果该值小于实际节点数,那么某些节点将出现故障或丢失连接。

wsrep_cluster_conf_id

集群更改总数

确定集群是否被分成几个组件,也称为 分区。分区通常由网络故障造成的。所有节点必须具有相同的值。

如果某些节点报告不同的 wsrep_cluster_conf_id,请检查 wsrep_cluster_status 值,以查看节点是否仍然可以写入集群(主要)。

wsrep_cluster_status

主要组件状态

决定节点是否可以写入集群。如果节点可以写入集群,wsrep_cluster_status 值是 Primary。任何其他值都表示节点是非操作分区的一部分。