当前位置: 首页 > news >正文

MySQL高可用架构实战:备份恢复、主从复制、读写分离与MHA

MySQL高可用架构实战:备份恢复、主从复制、读写分离与MHA

一、MySQL备份与恢复

1.1 备份分类
  • 物理备份:直接复制数据库文件(冷备、热备、温备)。
  • 逻辑备份:导出SQL语句(如mysqldump)。
  • 增量备份:基于二进制日志。
1.2 冷备份(物理冷备)
systemctl stop mysqldtarczf /backup/mysql-backup-$(date+%F).tar.gz /var/lib/mysql systemctl start mysqld# 恢复时停止服务,解压覆盖,修改权限后启动
1.3 逻辑备份(mysqldump)
# 备份单个数据库mysqldump-uroot-pschool>/backup/school.sql# 备份多个数据库mysqldump-uroot-p--databasesschool mysql>/backup/school_mysql.sql# 备份所有数据库mysqldump-uroot-p--all-databases>/backup/all.sql# 备份指定表mysqldump-uroot-pschool student>/backup/student.sql
  • 恢复mysql -u root -p school < /backup/school.sql或在mysql内source /backup/student.sql
1.4 增量备份(基于binlog)
  1. 启用binlog:log-bin=mysql-bin
  2. 完整备份后刷新日志:mysqladmin flush-logs
  3. 后续所有变更记录在新binlog中。
  4. 恢复时:先恢复完整备份,再使用mysqlbinlog重放增量binlog。
mysqlbinlog mysql-bin.000003|mysql-uroot-p

二、主从复制

2.1 核心原理
  • binlog:主库记录所有变更。
  • IO线程:从库请求并接收binlog,写入relay log。
  • SQL线程:从库重放relay log。
2.2 配置步骤(基于5.7)

主库

[mysqld] server-id=1 log-bin=master-bin log-slave-updates

创建复制用户:

GRANTREPLICATIONSLAVEON*.*TO'myslave'@'192.168.%'IDENTIFIEDBY'123456';FLUSHPRIVILEGES;SHOWMASTERSTATUS;-- 记录File和Position

从库

[mysqld] server-id=2 relay-log=relay-log-bin relay-log-index=slave-relay-bin.index

执行:

CHANGE MASTERTOMASTER_HOST='主库IP',MASTER_USER='myslave',MASTER_PASSWORD='123456',MASTER_LOG_FILE='master-bin.000001',MASTER_LOG_POS=604;STARTSLAVE;SHOWSLAVESTATUS\G;-- 查看两个YES

三、读写分离(Amoeba中间件)

3.1 原理
  • 应用连接Amoeba代理(端口8066)。
  • Amoeba解析SQL,写操作(INSERT/UPDATE/DELETE)发往主库池,读操作(SELECT)发往从库池,并轮询负载均衡。
3.2 配置要点
  • 安装JDK,解压Amoeba。
  • 修改conf/amoeba.xml:设置客户端认证账号、defaultPool、writePool、readPool。
  • 修改conf/dbServers.xml:定义后端MySQL节点(主库和从库地址、用户名密码、库名)。
  • 启动Amoeba:/usr/local/amoeba/bin/amoeba start
  • 客户端连接Amoeba:mysql -u amoeba -p123456 -h amoeba_ip -P 8066

四、MHA高可用

4.1 MHA概述
  • 解决MySQL主从复制中主库单点故障,实现自动故障转移(0-30秒)。
  • 组成:Manager(管理节点)+ Node(数据节点)。
  • 原理:监控主库,宕机后从候选从库中选举新主库,并让其他从库指向新主库。
4.2 实验环境(一主两从)
主机名IP角色
mysql-master192.168.108.131主库,安装node
mysql-slave01192.168.108.132从库(候选主),安装node
mysql-slave02192.168.108.133从库,安装node
mha192.168.108.130管理节点,安装node+manager
4.3 配置步骤
  1. 配置主从复制(如上)。
  2. 所有节点安装MHA node,manager节点安装MHA manager。
  3. 配置SSH免密登录(manager到所有节点,所有节点之间互相免密)。
  4. 准备虚拟IP脚本(master_ip_failover),设置VIP如192.168.108.200
  5. 创建MHA配置文件/etc/masterha/app1.cnf,指定用户、密码、复制用户、日志路径、VIP脚本等。
  6. 检查SSH和复制状态:
masterha_check_ssh--conf=/etc/masterha/app1.cnf masterha_check_repl--conf=/etc/masterha/app1.cnf
  1. 手动在主库绑定VIP:ifconfig ens33:1 192.168.108.200/24
  2. 启动MHA:
nohupmasterha_manager--conf=/etc/masterha/app1.cnf\--remove_dead_master_conf--ignore_last_failover\</dev/null>/var/log/masterha/app1/manager.log2>&1&
4.4 故障模拟与恢复
  • 停止主库MySQL:systemctl stop mysql
  • MHA自动切换,VIP漂移到候选从库(slave01),其他从库重新指向新主库。
  • 原主库恢复后,重新配置为从库指向新主库。

五、补充:MySQL 5.7源码编译安装

  • 安装依赖:gcc, cmake, ncurses-devel, bison等。
  • 下载MySQL源码和boost库。
  • cmake指定安装路径、字符集、存储引擎、boost路径等。
  • make && make install
  • 初始化数据库:mysqld --initialize-insecure --user=mysql
  • 配置systemd服务文件,设置环境变量。
http://www.rkmt.cn/news/1497518.html

相关文章:

  • 金昌市2026年本地上门黄金回收门店指南 彩金+铂金+金条+白银回收门店联系方式推荐 - 干豆腐啊
  • 微信小程序计算机毕设之基于Android的全民健身App设计与实现(完整前后端代码+说明文档+LW,调试定制等)
  • 浏览器市场与用户画像分析-数据大屏
  • 轻量化落地!四维精益TPM实操体系,根治车间设备故障难题
  • 鞍山市2026最新黄金回收+白银回收+铂金回收店铺门店权威榜单TOP1~5家推荐地址电话 - 千叶啊
  • iOS 27的11个新变化,你觉得值得更新吗?
  • 为机器人原生,时空一体世界动作模型问世!复旦系开辟具身AGI最优解
  • java后端面试题(Redis篇)
  • SolidWorks_基于草图的实体特征7_筋特征构建
  • QT初始(1)
  • 西双版纳傣族自治州2026年本地上门黄金回收门店指南 彩金+铂金+金条+白银回收门店联系方式推荐 - 三大殿
  • 2026武汉网站建设、网站设计、小程序制作公司推荐榜单 - 奔跑123
  • 2026年6月变频器厂家TOP5综合评测:技术、选型与标杆企业全解析
  • N8N 工作流使用中转API 教程
  • 独立开发者最值钱的资产,是 1000 个忠实用户
  • 襄阳市2026年本地上门黄金回收门店指南 彩金+铂金+金条+白银回收门店联系方式推荐 - 三大殿
  • 116、飞控中的状态机设计模式
  • 2026年最新5个免费字体下载网站合集,设计师速速收藏!
  • AI时代普通人如何玩转企业级开发V2.0
  • 蚌埠市2026最新黄金回收+白银回收+铂金回收店铺门店权威榜单TOP1~5家推荐地址电话 - 三大殿
  • 2026西安黄金回收避雷红黑榜:内行人深扒套路,怎么选才不踩坑? - 西安闲转记
  • LPC3141/3143嵌入式开发实战:ARM9核心、USB OTG与安全启动解析
  • 营口市2026年本地上门黄金回收门店指南 彩金+铂金+金条+白银回收门店联系方式推荐 - 三大殿
  • 吃透 Pro*C 国产化:从环境适配到业务落地全流程
  • 2026招聘求职类小程序开发制作公司有哪些? - 奔跑123
  • 百度内部启动青木、风雷两大计划,百度大动作该咋看?
  • Qt 高阶 08|Qt 插件开发 接口设计、插件编写、动态加载插件
  • 菏泽市2026最新黄金回收+白银回收+铂金回收店铺门店权威榜单TOP1~5家推荐地址电话 - 三大殿
  • 别再手动调参了!用PyTorch Lightning的ModelCheckpoint和EarlyStopping解放你的双手
  • Mac剪贴板革命:灵剪Cliperx重塑高效工作流