Linux下MySQL/MariaDB Galera集群搭建过程(2)

到这里,第1个节点的配置就完成了,然后在另一台主机上按照步骤1~11配置第2个节点,只需修改节点2的wsrep_cluster_address为节点1的IP即可,以此类推。

12. 启动集群节点

检查mysql进程:[root@localhost ~]# ps aux|grep mysql

停止mysql服务:[root@localhost ~]# service mysql stop

启动第1个节点:[root@localhost ~]# service mysql bootstrap

Linux下MySQL/MariaDB Galera集群搭建过程

启动第2、3、...个节点:[root@localhost ~]# service mysql start

Linux下MySQL/MariaDB Galera集群搭建过程

(注意:启动mysql之前先检查一下服务是否已经启动,不要重复启动,如果无法停止当前mysql服务则手动kill掉mysql的进程)

13. 检查集群运行状态

[root@localhost ~]# mysql -uroot -p
MariaDB [(none)]> show status like 'wsrep%';

如果wsrep_connected=ON且wsrep_ready=ON则说明节点成功接入集群。

Linux下MySQL/MariaDB Galera集群搭建过程

Linux下MySQL/MariaDB Galera集群搭建过程

14. 配置集群的仲裁节点

对于只有2个节点的galera cluster和其他集群软件一样,需要面对极端情况下的“脑裂”状态。为了避免这种问题,galera引入了“arbitrator(仲裁人)”。
“仲裁人”节点上没有数据,它在集群中的作用就是在集群发生分裂时进行仲裁,集群中可以有多个“仲裁人”节点。将“仲裁人”节点加入集群的方法很简单,运行如下命令即可:
[root@localhost ~]# garbd -a gcomm://<节点IP> -g my_wsrep_cluster -d

参数说明

  -a 集群地址
  -g 集群名称
  -d 以daemon模式运行

15. 检查数据库是否符合要求

部署到集群之前,建议先检查数据库是否符合galera的要求,比如存储引擎必须是innodb、数据表必须有主键等,否则记录将不会在多台复制。

选择指定的数据库,执行以下SQL输出不符合要求的表及其原因,根据相应的原因修改即可:

select distinct concat( t.table_schema, '.', t.table_name ) as tbl, t. engine, if ( isnull(c.constraint_name), 'nopk', '' ) as nopk, if ( s.index_type = 'fulltext', 'fulltext', '' ) as ftidx, if ( s.index_type = 'spatial', 'spatial', '' ) as gisidx from information_schema. tables as t left join information_schema.key_column_usage as c on ( t.table_schema = c.constraint_schema and t.table_name = c.table_name and c.constraint_name = 'primary' ) left join information_schema.statistics as s on ( t.table_schema = s.table_schema and t.table_name = s.table_name and s.index_type in ('fulltext', 'spatial')) where t.table_schema not in ( 'information_schema', 'performance_schema', 'mysql' ) and t.table_type = 'base table' and ( t. engine <> 'innodb' or c.constraint_name is null or s.index_type in ('fulltext', 'spatial')) order by t.table_schema, t.table_name;

16. 常见问题

1)启动mysql时出错:SST in progress, setting sleep higher. ERROR!

确保本机已安装rsync:[root@localhost ~]# yum list|grep rsync

确保已允许galera sst使用的端口4444、4567、4568通过防火墙并重启防火墙功能

确保selinux已对端口4444开放权限:[root@localhost ~]# semanage port -a -t mysqld_port_t -p tcp 4444

2)查看galera集群状态时wsrep_connected和wsrep_ready的值均为OFF!

 打开/etc/my.cnf.d/wsrep.cnf文件,找到wsrep_cluster_address="gcomm://"这一行,检查前面是否有"#",如果有则删掉并重启mysql。

MariaDB Galera Cluster 部署(如何快速部署MariaDB集群) 

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/860bcef52e831a821003fc2dea20378b.html