MariaDB Galera Cluster

2017-05-16  本文已影响880人  yuanzicheng

MariaDB Galera Cluster是一种同步多主机集群方案,目前它支持XtraDB/ InnoDB存储引擎,为MySQL/MariaDB的高可用架构提供了一种实现基础。

首先引用《MySQL高可用方案选型参考》这篇文章中关于Gelera优缺点的分析。

优势:

劣势:

接下来动手实践,用虚拟机完成MariaDB Galera Cluster的搭建。

1.环境准备

CentOS 7.3
MariaDB 10.1.23
host: 192.168.1.103,192.168.1.105,192.168.1.106

2.修改MariaDB配置文件

192.168.1.103

cat << EOF > /etc/my.cnf.d/server.cnf
[galera]
# Mandatory settings
wsrep_on=ON
wsrep_provider=/usr/lib64/galera/libgalera_smm.so
wsrep_cluster_address="gcomm://192.168.1.103,192.168.1.105,192.168.1.106"
wsrep_node_name=node1
wsrep_node_address=192.168.1.103
binlog_format=row
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
# Allow server to accept connections on all interfaces.
# bind-address=0.0.0.0
# Optional setting
wsrep_slave_threads=1
innodb_flush_log_at_trx_commit=0
EOF

192.168.1.105

cat << EOF > /etc/my.cnf.d/server.cnf
[galera]
# Mandatory settings
wsrep_on=ON
wsrep_provider=/usr/lib64/galera/libgalera_smm.so
wsrep_cluster_address="gcomm://192.168.1.103,192.168.1.105,192.168.1.106"
wsrep_node_name=node2
wsrep_node_address=192.168.1.105
binlog_format=row
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
# Allow server to accept connections on all interfaces.
# bind-address=0.0.0.0
# Optional setting
wsrep_slave_threads=1
innodb_flush_log_at_trx_commit=0
EOF

192.168.1.106

cat << EOF > /etc/my.cnf.d/server.cnf
[galera]
# Mandatory settings
wsrep_on=ON
wsrep_provider=/usr/lib64/galera/libgalera_smm.so
wsrep_cluster_address="gcomm://192.168.1.103,192.168.1.105,192.168.1.106"
wsrep_node_name=node3
wsrep_node_address=192.168.1.106
binlog_format=row
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
# Allow server to accept connections on all interfaces.
# bind-address=0.0.0.0
# Optional setting
wsrep_slave_threads=1
innodb_flush_log_at_trx_commit=0
EOF

3.初始化集群

# 在第一个节点上启动galera cluster
galera_new_cluster
# 或
/usr/sbin/mysqld --wsrep-new-cluster --user=root &
# 其它节点重启mariadb
systemctl restart mariadb.service
# 特别提醒:如果其它节点无法启动,需要关闭selinux
# /etc/selinux/config中,SELINUX=enforcing改为SELINUX=disabled,重启后永久生效

4.查询集群中的节点

# 查看节点数量
MariaDB [(none)]> SHOW STATUS LIKE 'wsrep_cluster_size';
+--------------------+-------+
| Variable_name      | Value |
+--------------------+-------+
| wsrep_cluster_size | 3     |
+--------------------+-------+
# 查看更多信息
MariaDB [(none)]> SHOW STATUS LIKE 'wsrep%';

5.测试

具体的测试过程就不摆出来了,集群搭建好后这些结果是没有什么悬念的。

总结:以上只是如何搭建集群,如果要对这种集群方案有深刻的认识和理解,需要对其原理进一步研究!建议阅读官方文档及其它文章。

参考文章:
Galera replication for MySQL(包括Galera replication原理)
MySQL的Galera Cluster配置说明
如何修復 MariaDB Galera Cluster

上一篇下一篇

猜你喜欢

热点阅读