Carry の Blog Carry の Blog
首页
  • Nginx
  • Prometheus
  • Iptables
  • Systemd
  • Firewalld
  • Docker
  • Sshd
  • DBA工作笔记
  • MySQL
  • Redis
  • TiDB
  • Elasticsearch
  • Python
  • Shell
  • MySQL8-SOP手册
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

Carry の Blog

好记性不如烂键盘
首页
  • Nginx
  • Prometheus
  • Iptables
  • Systemd
  • Firewalld
  • Docker
  • Sshd
  • DBA工作笔记
  • MySQL
  • Redis
  • TiDB
  • Elasticsearch
  • Python
  • Shell
  • MySQL8-SOP手册
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • MySQL8-SOP

    • 第一章 概述
    • 第二章 环境准备
    • 第三章 安装部署规范
    • 第四章 ReplicaSet高可用配置
    • 第五章 监控与日常维护
    • 第六章 故障处理手册
    • 第七章 安全与权限管理
    • 第八章 扩展与升级方案
      • 8.1 垂直扩展 (Scale-Up)
      • 8.2 横向扩展 (Scale-Out)
        • 8.2.1 新增只读节点 (Read Replica)
        • 分库分表场景配置
      • 8.2 在线版本升级策略
        • 小版本升级流程(8.0.x → 8.0.y)
        • 主版本升级风险预案(8.0 → 9.0)
        • 版本升级检查项
      • 下一步
    • 附录
  • 专题系列
  • MySQL8-SOP
Carry の Blog
2024-01-09
目录

第八章 扩展与升级方案原创

# 第八章 扩展与升级方案

随着业务的发展,数据库可能会面临性能瓶颈或需要更新版本以获得新功能和安全修复。本章讨论 MySQL 8.0 的常见扩展策略(垂直与横向)以及版本升级的最佳实践。

# 8.1 垂直扩展 (Scale-Up)

垂直扩展是指通过增加单个服务器节点的硬件资源(如 CPU、内存、磁盘性能)来提升数据库处理能力。

  • 优点:
    • 实现相对简单,对应用层透明。
    • 无需修改应用架构或数据库结构。
  • 缺点:
    • 单点性能存在物理上限。
    • 硬件成本可能随性能要求指数级增长。
    • 无法解决单点故障问题(仍需配合高可用方案)。
  • 适用场景:
    • 负载增长初期,或对架构复杂度敏感的场景。
    • 作为横向扩展前的补充手段。
  • 操作: 通常涉及停机更换硬件或迁移到更高配置的服务器。云环境则可以通过调整实例规格实现。

# 8.2 横向扩展 (Scale-Out)

横向扩展是指通过增加更多的服务器节点来分摊负载。主要有两种方式:增加只读副本和分库分表。

# 8.2.1 新增只读节点 (Read Replica)

通过添加一个或多个从库来分担主库的读请求压力,实现读写分离。

操作清单与流程:

前置检查

  1. 确认主节点复制功能正常(Binlog 开启,GTID 启用)。
  2. 验证新服务器与现有主从节点的网络连通性(MySQL 端口、X Protocol 端口)。
  3. 检查新服务器系统资源(CPU, RAM, Disk)满足要求。
  4. 准备好具有复制权限的 MySQL 账号(参考第四章)。
  5. (可选,推荐) 准备好具有 AdminAPI 权限的管理账号(用于 MySQL Shell)。

# 分库分表场景配置

-- 配置复制过滤规则
CHANGE REPLICATION SOURCE TO
    SOURCE_HOST='master_host',
    SOURCE_AUTO_POSITION=1,
    REPLICATE_DO_DB='db_name',
    REPLICATE_IGNORE_DB='ignored_db';
1
2
3
4
5
6

注意事项

  1. 合理规划分片策略
  2. 考虑数据分布均衡
  3. 注意跨分片事务
  4. 监控复制延迟

# 8.2 在线版本升级策略

# 小版本升级流程(8.0.x → 8.0.y)

  1. 升级准备
# 备份当前配置
cp /etc/my.cnf /etc/my.cnf.bak

# 备份数据
mysqldump --all-databases --single-transaction > backup.sql
1
2
3
4
5
  1. 滚动升级步骤
# 1. 升级从节点
systemctl stop mysqld
yum update mysql-server
systemctl start mysqld

# 2. 等待复制追平
SHOW REPLICA STATUS\G

# 3. 切换主从角色
# 4. 升级原主节点
1
2
3
4
5
6
7
8
9
10

# 主版本升级风险预案(8.0 → 9.0)

重要提示

主版本升级涉及重大变更,必须经过完整的测试验证

# 升级前检查清单

  • [ ] 完整备份所有数据
  • [ ] 验证备份可用性
  • [ ] 检查不兼容特性
  • [ ] 评估停机时间
  • [ ] 准备回滚方案

# 升级流程

# 版本升级检查项

检查项 说明 处理方法
系统兼容性 操作系统版本要求 升级系统依赖
配置参数 废弃或新增参数 更新配置文件
字符集 默认字符集变更 检查应用兼容性
认证插件 认证方式变化 更新连接配置

升级建议

  1. 总是先在测试环境验证
  2. 准备详细的升级步骤文档
  3. 制定回滚计划
  4. 预留充足的维护窗口
  5. 提前通知相关团队

# 下一步

  • 附录
  • 返回目录
#MySQL#数据库#扩展升级#高可用
上次更新: 4/24/2025

← 第七章 安全与权限管理 附录→

最近更新
01
tidb fast ddl
04-04
02
TiDB配置文件调优 原创
04-03
03
如何移除TiDB中的表分区 原创
04-03
更多文章>
Theme by Vdoing
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式