如何缩容从库_mysql节点管理策略

16次阅读

缩容 MySQL 从库需先确认其是否承载真实读流量,再停复制并核对同步状态,接着从 HA 工具、代理层等上层配置中移除节点,最后归档关键信息并清理磁盘。

如何缩容从库_mysql 节点管理策略

缩容从库 MySQL 节点不是简单删掉一台机器,关键在于确保主从数据一致性、避免复制中断、不影响线上读业务,并安全下线节点。

确认该从库是否被业务实际使用

先查清楚这个从库是不是真正在承担读流量。很多环境存在“僵尸从库”——配置在负载均衡或中间件里但长期无请求,或已被新节点替代。可通过以下方式验证:

  • 检查代理层(如 ProxySQL、MyCat、ShardingSphere)的 后端 节点列表和当前活跃连接数
  • 登录该从库执行 SHOW PROCESSLIST,观察是否有来自应用服务器的持续查询连接
  • 查看监控系统(如 Prometheus + Grafana)中该实例的 QPS、InnoDB Rows Read 等指标最近 24 小时趋势

停止复制并核对数据同步状态

确认可下线后,需安全停掉复制链路,防止误操作导致主库压力突增或 GTID 位点混乱:

  • 在从库上执行 STOP SLAVE;,再运行 SHOW SLAVE STATUSG 确认 Slave_IO_RunningSlave_SQL_Running 均为 No
  • 比对 Exec_Master_Log_PosRead_Master_Log_Pos 是否相等,确保 SQL 线程已追平(尤其在异步复制模式下)
  • 若启用 GTID,检查 Retrieved_Gtid_Set 是否等于 Executed_Gtid_Set,表示已完全同步

从高可用与中间件配置中移除节点

数据库层停复制只是第一步,必须同步清理所有依赖它的上层配置,否则可能引发故障:

  • 更新 MHA、Orchestrator 或自研 HA 工具 的配置,剔除该节点,避免故障转移时误选
  • 从 ProxySQL 的 mysql_servers 表中删除对应记录,并执行 LOAD MYSQL SERVERS TO RUNTIME; SAVE MYSQL SERVERS TO DISK;
  • 若使用 DNS 轮询或 VIP,需更新 DNS 记录或调整 Keepalived/VIP 绑定策略

归档与清理(非强制但推荐)

下线前保留关键信息,便于后续审计或回溯:

  • 导出该从库的 SHOW SLAVE STATUSGSELECT @@server_id, @@server_uuid; 结果存档
  • 备份其 my.cnf 配置文件 及启动参数,特别关注 read_onlysuper_read_onlyrelay_log 等设置
  • 确认磁盘数据已清空或打上标记(如重命名 datadir),避免被误重启或混入新集群
星耀云
版权声明:本站原创文章,由 星耀云 2025-12-27发表,共计1044字。
转载说明:转载本网站任何内容,请按照转载方式正确书写本站原文地址。本站提供的一切软件、教程和内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。
text=ZqhQzanResources