Linux云服务器数据库集群配置全攻略:从零搭建高可用架构
在云计算时代,数据库集群已成为企业级应用的标配。本文将手把手教你如何在Linux云服务器上搭建高性能数据库集群,包含MySQL、PostgreSQL和MongoDB三种主流数据库的配置方案。
一、准备工作
1.1 服务器环境要求
- 至少3台Linux云服务器(推荐CentOS 7+/Ubuntu 18.04+)
- 每台服务器2核CPU/4GB内存起步
- 服务器间内网互通
- SSH root权限访问
1.2 网络配置要点
确保所有节点:
# 关闭防火墙或配置放行规则
systemctl stop firewalld
systemctl disable firewalld
# 检查主机名解析
vi /etc/hosts
# 添加集群节点IP和主机名映射
192.168.1.10 node1
192.168.1.11 node2
192.168.1.12 node3
二、MySQL集群搭建
2.1 基于Galera的MySQL集群
步骤详解:
- 在所有节点安装MySQL和Galera插件:
# CentOS yum install -y mariadb-server mariadb-galera-server
- 配置/etc/my.cnf.d/galera.cnf:
[galera] wsrep_on=ON wsrep_provider=/usr/lib64/galera/libgalera_smm.so wsrep_cluster_address="gcomm://node1,node2,node3" wsrep_cluster_name=my_galera_cluster wsrep_node_address="当前节点IP" wsrep_node_name="当前节点名"
- 启动第一个节点:
galera_new_cluster
- 启动其他节点:
systemctl start mariadb
三、PostgreSQL高可用方案
3.1 使用Patroni管理PostgreSQL集群
实现自动故障转移的方案:
- 安装依赖:
yum install -y postgresql12 patroni etcd
- 配置Patroni:
scope: pg_cluster name: pg_node1 restapi: listen: 0.0.0.0:8008 etcd: hosts: ["node1:2379","node2:2379","node3:2379"]
- 启动服务:
systemctl start patroni
四、MongoDB分片集群配置
4.1 搭建分片副本集
典型的三节点副本集配置:
# 配置文件示例
sharding:
clusterRole: shardsvr
replication:
replSetName: rs0
net:
bindIp: 0.0.0.0
port: 27018
初始化副本集:
mongo --port 27018
> rs.initiate({
_id: "rs0",
members: [
{_id: 0, host: "node1:27018"},
{_id: 1, host: "node2:27018"},
{_id: 2, host: "node3:27018"}
]
})
五、集群监控与维护
5.1 常用监控工具
工具 | 用途 | 安装命令 |
---|---|---|
Prometheus | 指标收集 | yum install prometheus |
Grafana | 可视化展示 | yum install grafana |
pt-heartbeat | MySQL延迟监测 | yum install percona-toolkit |
5.2 日常维护命令
# MySQL集群状态检查
SHOW STATUS LIKE 'wsrep%';
# PostgreSQL主从切换
patronictl switchover
# MongoDB分片均衡
sh.startBalancer()
通过本文的详细指导,您已经掌握了在Linux云服务器上配置主流数据库集群的核心技术。实际部署时,建议先在小规模测试环境验证,再逐步迁移生产数据。记得根据业务需求调整配置参数,并建立完善的监控告警机制。