无法启动 galera 集群 - -bash: galera_new_cluster: 找不到命令

问题描述 投票:0回答:4

我按照说明在 Centos 7.6 上安装 MariaDB Galera 集群 但是,我就是无法启动集群。 我可以在两个节点上启动 MariaDB 服务。 这是我的server.cnf

[galera]
# Mandatory settings
wsrep_cluster_name="galera_cluster"
wsrep_on=ON
wsrep_provider=/usr/lib64/galera/libgalera_smm.so
wsrep_cluster_address=gcomm://172.18.35.XXX,172.18.35.XXX
binlog_format=row
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2

我很困惑,Maria DB 日志中没有任何内容。我还应该看什么?

没关系,我能够通过这一步,但集群不会启动。 我运行时没有收到任何错误

root@db-mmr101:/var/lib/mysql$  /usr/bin/mysqld_safe --wsrep-new-cluster
190709 15:01:24 mysqld_safe Logging to '/var/lib/mysql/db-mmr101.err'.
190709 15:01:25 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql

或者启动MariaDB服务。错误日志中也没有任何内容吗?

90709 15:01:30 mysqld_safe mysqld from pid file /var/lib/mysql/db-mmr101.pid ended
190709 15:01:38 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
190709 15:01:38 [Note] /usr/libexec/mysqld (mysqld 5.5.60-MariaDB) starting as process 19920 ...
190709 15:01:38 InnoDB: The InnoDB memory heap is disabled
190709 15:01:38 InnoDB: Mutexes and rw_locks use GCC atomic builtins
190709 15:01:38 InnoDB: Compressed tables use zlib 1.2.7
190709 15:01:38 InnoDB: Using Linux native AIO
190709 15:01:38 InnoDB: Initializing buffer pool, size = 128.0M
190709 15:01:38 InnoDB: Completed initialization of buffer pool
190709 15:01:38 InnoDB: highest supported file format is Barracuda.
190709 15:01:38  InnoDB: Waiting for the background threads to start
190709 15:01:39 Percona XtraDB (http://www.percona.com) 5.5.59-MariaDB-38.11 started; log sequence number 1597945
190709 15:01:39 [Note] Plugin 'FEEDBACK' is disabled.
190709 15:01:39 [Note] Server socket created on IP: '0.0.0.0'.
190709 15:01:39 [Note] Event Scheduler: Loaded 0 events
190709 15:01:39 [Note] /usr/libexec/mysqld: ready for connections.
Version: '5.5.60-MariaDB'  socket: '/var/lib/mysql/mysql.sock'  port: 3306  MariaDB Server
mariadb galera
4个回答
1
投票

在使用 SystemD 作为初始化系统的较新计算机上,可能需要执行其他步骤才能再次启动第一个集群节点。

首先确保该节点(将成为新的主节点)允许引导集群(这部分与 SystemD 无关):

# cat /var/lib/mysql/grastate.dat
# GALERA saved state
version: 2.1
uuid:    6a1f102a-13a3-11e7-b710-b2876418a643
seqno:   -1
safe_to_bootstrap: 0

将 safe_to_bootstrap 的值替换为 1:

# sed -i "/safe_to_bootstrap/s/0/1/" /var/lib/mysql/grastate.dat

然后运行命令

# galera_new_cluster

0
投票

你必须告诉第一个节点是集群中的第一个参与者,对于 MariaDB,命令是:

galera_new_cluster

https://galeracluster.com/library/training/tutorials/starting-cluster.html

您可能需要使用脚本的完整路径


0
投票

我意识到 yum install 并未在 Centos7.6 上安装 MariaDB 10+,因为存储库中没有相应的构建。必须使用 rpm 下载/构建 MariaDB 10.4。 yum 将安装 Centos 7.6 附带的默认 MariaDB 5.5。 5.5 是一个非常旧的版本,它没有 galera_new_cluster 命令。 这是使用 rpm-qa 在 RHEL 7+ 上安装 MariaDB 的好指南 https://medium.com/@thomashysselinckx/installing-mariadb-with-rpm-on-centos7-bce648cce758 我花了很多时间试图让它与 yum 一起工作,最终放弃并走上了 rpm 路线。


0
投票

如果您有监控日志的脚本,这些条目可以为您提供有关复制过程中发生的冲突的信息。

wsrep_log_conflicts: 此参数启用错误日志的冲突日志记录。一个例子是当两个节点尝试同时写入同一个表的同一行时。

cert.log_conflicts: 此 wsrep 提供程序选项允许在复制期间记录有关认证失败的信息。

wsrep_debug: 此参数启用数据库服务器日志的调试信息。

您可以通过 my.cnf 配置文件启用这些功能。下面的摘录是这些选项及其启用方式的示例:

wsrep 日志选项

wsrep_log_conflicts=开

wsrep_provider_options =“cert.log_conflicts = ON”

wsrep_debug=开

每当节点在副本节点上应用事件失败时,数据库服务器就会在数据目录中创建该事件的特殊二进制日志文件。节点使用的文件名命名约定是 GRA_*.log。

© www.soinside.com 2019 - 2024. All rights reserved.