温馨提示×

Linux SQLAdmin集群部署方法

小樊
36
2025-12-27 15:15:43
栏目: 云计算

Linux 上 SQLAdmin 集群部署方法

一 架构与前置准备

  • 架构认知:SQLAdmin 通常是基于 Web 的 MySQL 管理工具,所谓“集群部署”是指先搭建 MySQL 高可用/复制集群,再把多个 SQLAdmin 实例放在 Nginx/HAProxy 之后做负载均衡与高可用,统一对外提供管理入口。常见 MySQL 集群形态包括:主从复制Galera/PXCInnoDB ClusterNDB Cluster;SQLAdmin 连接侧可使用 ProxySQL/MySQL Router 实现读写分离与故障转移。
  • 节点规划:建议至少 3 台(2 台数据库节点 + 1 台 SQLAdmin/负载均衡节点),生产环境可扩展为 3–5 台数据库节点与 2–3 台 SQLAdmin/负载均衡节点。
  • 系统与网络:统一 Linux 发行版与内核版本,关闭 SELinux 或配置合规策略;开放必要端口(如 3306/33060/8080/8443/22);配置 NTP 时间同步;数据库与管理网分离;准备 VIP/DNS 作为统一访问入口。
  • 账号与权限:为复制创建专用账号(如 replicator),为监控/管理创建只读账号;限制来源网段,强制 TLS/SSL 连接。

二 部署 MySQL 高可用集群

  • 方案A 主从复制 + Keepalived(入门与通用)
    • 主节点 my.cnf:设置唯一 server-id=1,开启 log_bin,创建复制用户并授权;记录 SHOW MASTER STATUS 的 File/Position。
    • 从节点 my.cnf:设置唯一 server-id=2,开启 relay_log,必要时开启 log_bin;执行 CHANGE MASTER TO … 指向主节点,启动复制并检查 Slave_IO_Running/Slave_SQL_Running=Yes
    • 高可用:在两台数据库节点部署 Keepalived,配置 VRRPvirtual_ipaddress(VIP),主节点 priority=100,备节点 priority=90,实现 VIP 漂移 与故障自动切换。
  • 方案B Galera/PXC(多主同步)
    • 所有节点安装 Galera 兼容发行版(如 Percona XtraDB Cluster/MariaDB Galera),配置 wsrep_cluster_name/address/node_address 等参数;首节点以 –wsrep-new-cluster 引导,其余节点加入;SQLAdmin 通过 VIP/负载均衡 指向全部节点。
  • 方案C InnoDB Cluster(官方组复制)
    • 安装 Group Replication 插件,使用 MySQL Shell(mysqlsh) 执行 dba.createCluster() 创建集群,自动故障转移与弹性扩缩;SQLAdmin 指向集群任一存活节点或 VIP
  • 方案D NDB Cluster(分布式内存集群)
    • 部署 管理节点(ndb_mgmd)/数据节点(ndbd)/SQL 节点(mysqld),在 config.ini 定义拓扑;SQLAdmin 通过 VIP 指向多个 SQL 节点。

三 部署 SQLAdmin 多实例与负载均衡

  • 安装 SQLAdmin(示例)
    • Ubuntu/Debian:导入 APT GPG Key 与仓库后安装
      • wget -qO - https://packages.sqladmin.io/debian/public.key | sudo apt-key add -
      • echo “deb https://packages.sqladmin.io/debian/ $(lsb_release -cs) main” | sudo tee /etc/apt/sources.list.d/sqladmin.list
      • sudo apt update && sudo apt install -y sqladmin
    • CentOS/RHEL:下载官方 RPM/压缩包 安装,或配置 YUM 源后安装;安装完成后按需修改 /etc/sqladmin/ 下配置文件(如 config.yaml)。
  • 多实例与反向代理
    • 2–3 台管理节点部署 SQLAdmin(相同配置或共享存储),统一监听 8080/8443
    • Nginx 示例(HTTP,生产建议启用 HTTPS/TLS健康检查):
      • upstream sqladmin_backend { server 10.0.0.11:8080; server 10.0.0.12:8080; keepalive 32; }
      • server { listen 80; server_name sqladmin.example.com; location / { proxy_pass http://sqladmin_backend; proxy_http_version 1.1; proxy_set_header Connection “”; } }
  • 连接指向
    • 读写分离:SQLAdmin 连接 ProxySQL/MySQL Router 的读写端口(写主、读从);
    • 多主/集群:SQLAdmin 连接 VIP 或所有节点地址,由中间件/集群保证高可用。

四 验证与运维

  • 功能与高可用验证
    • MySQL 复制/集群:主从执行 SHOW SLAVE STATUS\G(IO/SQL 均为 Yes);Galera/PXC/InnoDB Cluster 检查 wsrep_cluster_size/statuscluster.status();NDB 检查 ndb_mgm 节点状态。
    • VIP 漂移:在数据库主节点停止 mysqld/Keepalived,验证 VIP 是否漂移到备节点,SQLAdmin 仍可通过 VIP 访问。
    • SQLAdmin 高可用:停止任一 SQLAdmin 节点,Nginx/HAProxy 应自动剔除故障实例,页面访问不受影响。
  • 监控与日志
    • 监控:采集 MySQL error log、slow query log、复制延迟、连接数、VIP 绑定状态;结合 Prometheus/Grafana告警
    • 日志:定期查看 /var/log/mysql/error.log/var/log/keepalived/keepalived.log、SQLAdmin 服务日志与 Nginx access/error 日志。

五 安全与最佳实践

  • 最小权限与网络隔离:复制/管理账号仅授予必要权限;数据库与管理网 VLAN/ACL 隔离;云环境使用 安全组 限制来源。
  • 加密与凭据:启用 TLS/SSL 连接(MySQL 与 SQLAdmin 前端);凭据使用 Vault/KMS 或配置文件权限 0600 管理。
  • 备份与恢复:定期 物理/逻辑备份(如 mysqldump/xtrabackup),验证恢复演练;保留 至少 7–30 天 备份。
  • 变更与回滚:变更前 备份与灰度;变更窗口内可快速回滚到上一个稳定版本或 VIP 回切。
  • 版本与补丁:统一 SQLAdmin/MySQL/中间件 版本;及时应用 安全补丁 与内核更新。

0