MariaDB Galera Cluster部署实践

原理

Galera复制插件不同于传统的MySQL复制,可以解决多个问题,包括多主写入冲突,复制滞后和主从不同步。
Galera Cluster与传统的复制方式不同,不通过I/O_thread和sql_thread进行同步,而是在更底层通过wsrep实现文件系统级别的同步,可以做到几乎实时同步

集群安装

说明:Galera集群至少需要三个节点的服务器硬件。

1、主机名、hosts文件修改

10.17.12.98 node1
10.17.12.99 node2
10.17.12.101 node3

2、防火墙、selinux关闭等

setenforce 0 
sed -i  "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config 
systemctl disable firewalld.service 
systemctl stop firewalld.service  

3、配置yum源

 more mariadb.repo 
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.0/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

安装软件

yum install mariadb-client mariadb-server galera -y

配置修改

编辑/etc/my.cnf,添加如下配置

[mysqld]
# 监听哪个地址,这里每个节点填对应的ip地址
bind-address=10.17.12.98
# 监听哪个端口
port = 3306
# 设置默认字符编码集
collation-server = utf8_general_ci
init-connect = SET NAMES utf8
character-set-server = utf8
# 设置日志路径
log-error = /var/log/mariadb/mariadb.log
# 设置binlog
log-bin = mysql-bin
binlog_format=ROW
# 设置默认数据目录
datadir = /var/lib/mysql/
# 设置默认存储引擎
default-storage-engine=innodb
innodb_autoinc_lock_mode=2
[galera]
wsrep_on=ON
wsrep_provider=/usr/lib64/galera/libgalera_smm.so
# galera集群名字
wsrep_cluster_name="galera_cluster"
# 本节点的主机名,这里每个节点填对应的ip地址
wsrep_node_name="node1" 
wsrep_cluster_address = gcomm://10.17.12.98:4567,10.17.12.99:4567,10.17.12.101:4567
wsrep_provider_options = gmcast.listen_addr=tcp://10.17.12.98:4567;ist.recv_addr=10.17.12.98:4568 
wsrep_node_address="10.17.12.98:4567"
# 设置galera集群同步的方法和用户名密码
wsrep_sst_auth=sst:password
wsrep_sst_method=xtrabackup-v2  #其他节点好像不需要加,待验证
max_connections = 10000
key_buffer_size = 64M
max_heap_table_size = 64M
tmp_table_size = 64M
innodb_buffer_pool_size = 128M

 其他节点需要修改/etc/my.cnf与每个节点对应

启动集群

完成安装和配置Galera Cluster后,需要使用--wsrep-new-cluster选择一个节点上启动mysqld。 这将会初始化集群的核心组件。 在此之后启动的每个节点都将连接到该组件并开始复制

galera_new_cluster

注意警告:只有在初始化主要组件时才使用--wsrep-new-cluster参数。 如果希望节点连接到现有群集时,不要执行这条命令。

启动数据库服务后,登录mysql数据库库,通过wsrep_cluster_size参数来判断启动是否成功。

SHOW STATUS LIKE 'wsrep_cluster_size';

直接启动其他节点

systemctl start mariadb

猜你喜欢

转载自www.cnblogs.com/jinyuanliu/p/10751915.html