mariadb galera集群搭建
galera简介
galera是一种实现数据库HA的新技术,相比于传统的主从复制方式,具有配置简单,使用方便的特点,对mariadb好像要10以上版本才支持。
galera集群中的所有节点都可以读写,而且数据保持实时同步,不过性能会有所降低。
环境搭建
基于CentOS7系统,标准yum源里面并没有10以上版本的mariadb,可以去mariadb官网下载centos7版本的rpm包,然后手动安装。
安装的包如下:
[root@appserver ~]# rpm -qa | grep Maria
MariaDB-common-10.1.20-1.el7.centos.x86_64
MariaDB-shared-10.1.20-1.el7.centos.x86_64
MariaDB-compat-10.1.20-1.el7.centos.x86_64
MariaDB-server-10.1.20-1.el7.centos.x86_64
MariaDB-client-10.1.20-1.el7.centos.x86_64
[root@appserver ~]# rpm -qa | grep galera
galera-25.3.19-1.rhel7.el7.centos.x86_64
这里只配置两个节点,IP分别是192.168.245.160
和192.168.245.16
配置步骤如下:
- 安装rpm包
- 集群各节点安装好数据库并做好常规的初始化配置(就是和以前单机部署模式一样的配置);
- 修改初始主节点(192.168.245.160)的配置文件:/etc/my.cnf.d/server.cnf
[mysqld]和[galera]配置如下:
[mysqld]
collation-server=utf8_general_ci
character-set-server=utf8
lower_case_table_names=1
skip_name_resolve=ON
server_id=160 # server-id每个节点唯一
[galera]
bind-address=0.0.0.0
wsrep_on=ON
wsrep_provider=/usr/lib64/galera/libgalera_smm.so
wsrep_cluster_address="gcomm://192.168.245.160,192.168.245.16" #整个集群的IP地址
binlog_format=row
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
wsrep_slave_threads=8
innodb_flush_log_at_trx_commit=0
- 停止主节点服务:
systemctl stop mariadb
- 启动主节点并创建集群,执行:
galera_new_cluster
- 在主机节点查询集群状态:
mysql> show status like 'wsrep%';
- 修改其他节点的配置文件:
/etc/my.cnf.d/server.cnf
除了server-id
外,其他配置都与主机节点相同 - 修改完配置文件后重启服务:
systemctl stop mariadb
systemctl start mariadb