1

要从停电中恢复,我需要在系统启动时启动 Galera 集群,我只能通过以下方式执行此操作:

service mysql start --wsrep-new-cluster

“service mysql start”将在启动时启动,但会失败,因为它是集群中唯一的一个。如果集群是唯一的集群,如何让集群从引导开始并且不会失败?

编辑

看起来我必须将 gcomm:// 留空才能启动,但这不是最好的解决方案,因为如果另一台服务器先联机然后它就会失败。

#galera settings
wsrep_provider=/usr/lib/galera/libgalera_smm.so
wsrep_cluster_name="my_wsrep_cluster"
wsrep_cluster_address="gcomm://"
wsrep_sst_method=rsync
wsrep_provider_options="pc.bootstrap=true"
4

2 回答 2

2

我以前经历过这种情况。以下是我为我的同事记录的程序:

  • 首先,我们将确定具有最新更改的节点
    • 在每个节点上转到 /var/lib/mysql 并检查 grastate.dat 文件
    • 我们正在寻找具有最高 seqno 且 uuid 不全为零的节点
  • 在捕获最新更改的节点上以引导模式启动集群
    • 服务 mysql 引导程序
  • 通过通常的启动命令启动其他节点
    • 服务 mysql 启动
  • 检查每个节点是否具有相同的数据库列表
    • mysql -u 根目录 -p
    • 显示数据库;
  • 在任何节点上运行命令以检查集群的状态并确保您看到类似以下内容
    • wsrep_local_state_comment | 已同步 <-- 集群已同步
    • wsrep_incoming_addresses | 10.0.0.9:3306,10.0.0.11:3306,10.0.0.13:3306 <--所有节点都是提供者
    • wsrep_cluster_size | 3 <-- 集群由 3 个节点组成
    • wsrep_ready | 开<--好:)
于 2014-09-17T17:38:10.867 回答
2

我的解决方案是编辑初始化脚本 - 这是 debian 的解决方案 - 位置我的初始化脚本是 /etc/init.d/mysql 然后我找到了这一行:

/usr/bin/mysqld_safe "${@:2}" > /dev/null 2>&1 &

我添加了参数 --wsrep-new-cluster

/usr/bin/mysqld_safe --wsrep-new-cluster "${@:2}" > /dev/null 2>&1 &

它在启动后工作。

于 2014-09-13T20:39:52.183 回答