首页主机资讯Debian MariaDB集群部署方案

Debian MariaDB集群部署方案

时间2025-11-19 22:19:04发布访客分类主机资讯浏览1152
导读:Debian MariaDB 集群部署方案 一 方案选型与拓扑 推荐采用 MariaDB Galera Cluster(多主同步复制),具备真正的 multi‑master、同步复制、自动节点管理、失效节点自动剔除、新节点自动全量/增量同...

Debian MariaDB 集群部署方案

一 方案选型与拓扑

  • 推荐采用 MariaDB Galera Cluster(多主同步复制),具备真正的 multi‑master同步复制自动节点管理失效节点自动剔除新节点自动全量/增量同步 等能力,适合对高可用与数据一致性要求较高的业务。
  • 典型拓扑(示例):3 节点 Galera 集群(IP:192.168.100.111/112/113),前端使用 Nginx(Stream)+ Keepalived 提供 VIP(192.168.100.110) 的数据库接入与故障切换,避免单点。Debian 12 上可直接使用 MariaDB 10.11galera‑4 软件包完成部署。

二 环境准备与基础配置

  • 软件与版本
    • 操作系统:Debian 12 Bookworm
    • 数据库与组件:mariadb-server(10.11)galera‑4
    • 安装命令:apt update & & apt install -y mariadb-server mariadb-client galera-4
  • 主机与解析
    • 建议配置 /etc/hosts 或使用 DNS,确保节点间可解析主机名。
  • 安全与初始化
    • 运行 mysql_secure_installation 完成 root 密码、匿名用户、test 库、远程 root 等安全项设置。
  • 网络与防火墙
    • 放通端口:3306/TCP(MySQL)4567/TCP+UDP(Galera 复制)4568/TCP(IST)4444/TCP(SST)。示例(firewalld):firewall-cmd --permanent --add-port={ 3306,4567,4568,4444} /tcp --permanent --add-port=4567/udp & & firewall-cmd --reload。如使用云安全组,同样需放行上述端口段。

三 Galera 集群部署步骤

  • 配置 MariaDB 基础(所有节点)
    • 编辑 /etc/mysql/mariadb.conf.d/50-server.cnf,注释或调整 bind-address,确保监听 0.0.0.0(或指定内网地址),并开启必要的 InnoDB 与复制参数(见下一节示例片段)。
  • 配置 Galera(所有节点)
    • 新建 /etc/mysql/mariadb.conf.d/galera.cnf,设置 wsrep_* 关键参数(集群名、节点地址、SST 方法、节点名/IP 等)。
  • 初始化第一个节点
    • 逐台停止数据库服务后,在第一个节点执行:systemctl start mariadb --wsrep-new-cluster
  • 加入其余节点
    • 其余节点直接:systemctl start mariadb(将自动与集群同步)
  • 验证集群状态
    • 在任一节点执行:mysql -uroot -p -e "SHOW STATUS LIKE 'wsrep_cluster_size'; " 应返回集群节点数(如 3)。
  • 常见排错要点
    • 首次引导只能有一个节点以 --wsrep-new-cluster 启动,其余节点常规启动即可加入。
    • 若出现 debian-sys-maint 访问被拒,确保各节点 /etc/mysql/debian.cnf 内容一致(尤其是密码)。

四 高可用接入与运维要点

  • 数据库接入高可用(推荐)
    • 使用 Nginx Stream 模块做四层转发,配合 Keepalived 提供 VIP 与主机故障自动切换,实现数据库连接的透明漂移与单点消除。
  • 重要参数与建议
    • InnoDB 行级复制:binlog_format=ROW
    • 自增锁模式:innodb_autoinc_lock_mode=2
    • 默认存储引擎:default-storage-engine=InnoDB
    • 绑定地址:bind-address=0.0.0.0(或内网地址)
    • SST 方法:测试/内网可用 rsync;生产建议 mariabackup(需安装相应包并配置凭据)
    • 建议显式设置 wsrep_node_addresswsrep_node_name,避免自动探测异常。
  • 备份与恢复
    • 定期物理/逻辑备份(如 mariabackup/mysqldump),并在变更窗口外执行;SST 选用 mariabackup 可获得一致性更好的全量同步。
  • 扩缩容
    • 扩容:新增节点按常规安装、配置 galera.cnf 后直接启动,将自动完成 IST/SST 同步;缩容:先迁移业务连接,再下线节点,确保 wsrep_cluster_size 符合预期。

五 配置片段示例

  • 节点通用基础配置(/etc/mysql/mariadb.conf.d/50-server.cnf 片段)
    [mysqld]
    bind-address            = 0.0.0.0
    skip-name-resolve
    
    binlog_format           = ROW
    default-storage-engine  = InnoDB
    innodb_autoinc_lock_mode= 2
    innodb_flush_log_at_trx_commit = 1
    sync_binlog             = 1
    
  • Galera 配置(/etc/mysql/mariadb.conf.d/galera.cnf 片段,三节点示例)
    [mysqld]
    wsrep_on                 = ON
    wsrep_provider           = /usr/lib/galera/libgalera_smm.so
    wsrep_cluster_name       = "galera_prod"
    wsrep_cluster_address    = "gcomm://192.168.100.111,192.168.100.112,192.168.100.113"
    wsrep_node_address      = "本机内网IP"
    wsrep_node_name         = "本机主机名"
    wsrep_sst_method        = rsync   # 生产建议 mariabackup
    wsrep_sst_auth          = "sstuser:StrongPass"  # 仅 mariabackup 需要
    
    注:首次引导仅在一个节点执行 systemctl start mariadb --wsrep-new-cluster,其余节点直接 systemctl start mariadb

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Debian MariaDB集群部署方案
本文地址: https://pptw.com/jishu/751646.html
Debian MariaDB用户权限设置指南 Debian MariaDB主从复制怎么实现

游客 回复需填写必要信息