Mysql Galera Autostart来自boot --wsrep-new-cluster

时间:2014-04-29 05:57:42

标签: mysql galera

要从停电中恢复,我需要在系统启动时启动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"

2 个答案:

答案 0 :(得分:2)

我的解决方案是编辑init脚本 - 这是debian的解决方案 - 位置我的init脚本是/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 &

它在启动后正在工作。

答案 1 :(得分:2)

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

  • 首先,我们将确定具有最新更改的节点
    • 在每个节点上转至/ var / lib / mysql并检查grastate.dat文件
    • 我们正在寻找seqno最高的节点和一个并非全为零的uuid
  • 在捕获最新更改的节点上,在引导模式下启动集群
    • service mysql bootstrap
  • 通过常用的启动命令启动其他节点
    • service mysql start
  • 检查每个节点是否具有相同的数据库列表
    • mysql -u root -p
    • show databases;
  • 在任何节点上运行该命令以检查群集的状态,并确保看到如下所示的内容
    • wsrep_local_state_comment |已同步< - cluster已同步
    • wsrep_incoming_addresses | 10.0.0.9:3306,10.0.0.11:3306,10.0.0.13:3306< - 所有节点都是提供者
    • wsrep_cluster_size | 3< - cluster由3个节点组成
    • wsrep_ready | ON< - good :))