在CentOS8下搭建PXC集群

2020-09-23 10:21:09 浏览数 (1)

  • 启动其他节点的命令是:systemctl start mysqld
  • 那么对应的关闭命令就是:systemctl stop mysqld

2、如果所有PXC节点都是安全下线的,那么在启动集群时,就需要先启动最后下线的节点

初次启动集群时可以将任意一个节点作为首节点启动。但如果是一个已经启动过的集群,那么当该集群下线再上线时,就需要将最后下线的节点作为首节点来启动。其实关于某个节点是否能作为首节点启动,可以通过查看 grastate.dat 文件得知:

代码语言:javascript复制
[root@PXC-Node1 ~]# cat /var/lib/mysql/grastate.dat 
# GALERA saved state
version: 2.1
uuid:    2c915504-39ac-11ea-bba7-a294386c4285
seqno:   -1
safe_to_bootstrap: 0
[root@PXC-Node1 ~]#
  • 说明:safe_to_bootstrap的值为0时表示不能作为首节点启动,为1时表示可以作为首节点启动。PXC集群中最后一个下线的节点就会将safe_to_bootstrap的值改为1,下次启动集群时就需要将该节点作为首节点启动。这是因为最后一个下线的节点数据是最新的。将其作为首节点启动,然后让其他节点与该节点进行数据同步,这样才能保证集群中的数据是最新的。否则,可能会导致集群中的数据是某个时间点之前的旧数据。

3、如果PXC节点都是意外退出的,而且不是在同一时间退出的情况

在本文开头提到过,PXC集群中一半以上的节点因意外宕机而无法访问时,PXC集群就会停止运行。但如果这些PXC节点是以安全下线的方式退出,则不会引发集群自动停止运行的问题,只会缩小集群的规模。只有意外下线一半以上节点时集群才会自动停止,意外下线的情况包括:

  • 宕机、挂起、关机、重启、断电、断网等等,反正就是没有使用相应的停止命令安全下线节点都属于意外下线

只要PXC集群中的节点不是同时意外退出的,那么当集群还剩一个节点时,该节点就会自动将grastate.dat文件中的safe_to_bootstrap值改为1。所以在重启集群时,也是先启动最后一个退出的节点。


4、如果PXC节点都是同时意外退出的,则需要修改**grastate.dat**文件

当集群中所有节点都是在同一时间因意外情况而退出,那么此时所有节点的safe_to_bootstrap都为0,因为没有一个节点来得及去修改safe_to_bootstrap的值。当所有节点的safe_to_bootstrap均为0时,PXC集群是无法启动的。

在这种情况下我们就只能手动选择一个节点,将safe_to_bootstrap修改为1,然后将该节点作为首节点进行启动:

代码语言:javascript复制
[root@PXC-Node1 ~]# vim /var/lib/mysql/grastate.dat 
...
safe_to_bootstrap: 1
[root@PXC-Node1 ~]# systemctl start mysql@bootstrap.service

接着再依次启动其他节点即可:

代码语言:javascript复制
[root@PXC-Node2 ~]# systemctl start mysqld

5、如果集群中还有可运行的节点,那么其他下线的节点只需要按普通节点上线即可

代码语言:javascript复制
[root@PXC-Node2 ~]# systemctl start mysqld

0 人点赞