售前咨询400-838-0503

如何在Linux服务器上安装和配置MariaDB Galera集群?

发布:2025-04-19 02:11

Linux服务器上搭建MariaDB Galera集群的完整指南

在当今数据驱动的时代,数据库的高可用性变得至关重要。MariaDB Galera集群作为一种同步多主复制的解决方案,正在成为企业级数据库部署的热门选择。本文将详细介绍在Linux环境下安装和配置MariaDB Galera集群的全过程。

一、Galera集群技术概述

Galera Cluster是为MariaDB/MySQL提供的高可用性解决方案,它实现了真正的多主架构,所有节点都可以处理读写请求。其主要特点包括:

  • 同步复制:确保数据在所有节点上一致
  • 多主架构:任何节点都可接受写入
  • 自动成员管理:节点故障自动检测
  • 自动节点加入:新节点自动同步数据

二、准备工作

1. 硬件要求

建议至少3个节点组成集群,每个节点配置:

  • 2GHz以上CPU
  • 4GB以上内存
  • 100GB以上存储空间
  • 千兆网络连接

2. 软件环境

本文以CentOS 8为例,同样适用于其他主流Linux发行版:

# 系统更新
sudo dnf update -y
sudo dnf install -y epel-release

三、安装MariaDB Galera集群

1. 添加MariaDB官方仓库

# 创建仓库文件
sudo tee /etc/yum.repos.d/mariadb.repo <

2. 安装Galera软件包

sudo dnf install -y MariaDB-server MariaDB-client galera-4

四、配置Galera集群

1. 主节点配置

编辑/etc/my.cnf.d/server.cnf文件:

[galera]
wsrep_on=ON
wsrep_provider=/usr/lib64/galera-4/libgalera_smm.so
wsrep_cluster_name="my_galera_cluster"
wsrep_cluster_address="gcomm://node1_ip,node2_ip,node3_ip"
wsrep_node_name="node1"
wsrep_node_address="node1_ip"
binlog_format=row
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2

2. 启动第一个节点

sudo galera_new_cluster
sudo systemctl start mariadb

3. 其他节点配置

在其他节点上配置类似文件,只需修改wsrep_node_name和wsrep_node_address,然后启动服务:

sudo systemctl start mariadb

五、验证集群状态

1. 检查集群大小

mysql -e "SHOW STATUS LIKE 'wsrep_cluster_size'"

2. 测试数据同步

在一个节点创建测试数据库,在其他节点验证是否同步:

CREATE DATABASE galera_test;
USE galera_test;
CREATE TABLE test (id INT PRIMARY KEY, value VARCHAR(100));
INSERT INTO test VALUES (1, 'Galera Cluster Test');

六、常见问题解决

1. 节点无法加入集群

检查防火墙设置,确保节点间以下端口开放:

  • 3306 - MySQL/MariaDB
  • 4567 - Galera复制
  • 4568 - 增量状态传输
  • 4444 - 状态快照传输

2. 脑裂问题处理

当集群分裂时,可以手动指定主组件:

# 在一个节点上
sudo systemctl stop mariadb
sudo galera_new_cluster

七、性能优化建议

  • 调整InnoDB缓冲池大小(innodb_buffer_pool_size)
  • 优化Galera缓存设置(wsrep_slave_threads)
  • 考虑使用专业硬件(SSD、高速网络)
  • 定期监控集群状态

通过以上步骤,您已成功在Linux服务器上部署了MariaDB Galera集群。这种架构不仅提供了高可用性,还能实现读写负载均衡,是构建关键业务系统的理想选择。

按文档操作后还是不行,把机器编号、出问题的时间点和现象截图一起提工单,能少来回一轮。

提交工单