第 7 章 使用 Galera 管理数据库复制


Red Hat OpenStack Platform 使用 MariaDB Galera 集群来管理数据库复制。Pacemaker 将 Galera 服务作为管理数据库 master/slave 状态 的捆绑包设置 资源运行。您可以使用 Galera 测试和验证数据库集群的不同方面,如主机名解析、集群完整性、节点完整性和数据库复制性能。

和其它 Pacemaker 服务类似,您可以使用 pcs status 命令检查 Galera 服务正在运行,以及它正在运行的 Controller 节点。有关查看 Pacemaker 捆绑包状态的更多信息,请参阅 第 4.3 节 “查看捆绑包状态”

在调查数据库集群完整性时,每个节点都必须满足以下条件:

  • 节点是正确集群的一部分。
  • 节点可以写入集群。
  • 节点可以从集群接收查询和写入命令。
  • 节点连接到集群中的其他节点。
  • 节点是将 write-sets 复制到本地数据库中表。

7.1. 验证主机名解析

默认情况下,director 将 Galera 资源绑定到主机名而不是 IP 地址。因此,任何阻止主机名解析的问题(如错误配置或 DNS 失败)都可能会导致 Pacemaker 错误地管理 Galera 资源。

要对 MariaDB Galera 集群进行故障排除,您可以首先消除任何主机名解析问题,然后在每个 Controller 节点的数据库上检查 write-set 复制状态。要访问 MySQL 数据库,您要在 overcloud 部署期间使用 director 设置的密码。

流程

  1. 在 Controller 节点上,通过运行 hiera 命令获取 MariaDB 数据库 root 密码。

    $ sudo hiera -c /etc/puppet/hiera.yaml "mysql::server::root_password"
    *<MYSQL-HIERA-PASSWORD>*
    Copy to Clipboard Toggle word wrap
  2. 获取节点上运行的 MariaDB 容器的名称。

    $ sudo docker ps | grep -i galera
    5fb195b0d9e8        192.168.24.1:8787/rh-osbs/rhosp13-openstack-mariadb:pcmklatest   "dumb-init -- /bin..."   7 hours ago         Up 7 hours  galera-bundle-docker-0
    Copy to Clipboard Toggle word wrap
  3. 从每个节点上的 MariaDB 数据库获取写入设置复制信息。

    $ sudo docker exec galera-bundle-docker-0 sudo mysql -B --password="[MYSQL-HIERA-PASSWORD]" -e "SHOW GLOBAL STATUS LIKE 'wsrep_%';"
        +----------------------------+----------+
        | Variable_name              | Value    |
        +----------------------------+----------+
        | wsrep_applier_thread_count | 1        |
        | wsrep_apply_oooe           | 0.018672 |
        | wsrep_apply_oool           | 0.000630 |
        | wsrep_apply_window         | 1.021942 |
        | ...                        | ...      |
        +----------------------------+----------+
    Copy to Clipboard Toggle word wrap

    每个相关变量都使用前缀 wsrep

  4. 通过检查集群报告正确的节点数量来验证 MariaDB Galera 集群的健康状态和完整性。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat