Mysql主从架构-主库宕机如何恢复业务

在我们日常工作场景,首先要做到架构无单点隐患,其次在优化【安全、性能、高可用、高并发等】,Mysql这款关系型数据库稳定、高效,所以使用广泛,如果企业架构是1主多从,那如果Mysql主库宕机,如何解决?


----MySQL 主从同步原理图



一、Mysql主库宕机情况分类:

1)硬件问题,(服务器、ecs、虚拟主机等等)宕机



2)service问题,Mysql宕机,服务异常,端口异常等


二、硬件问题处理思路

硬件问题我们可以查看IDC巡检记录,或通过远程控制卡查看硬件运行状态,根据事实情况就行硬件故障报修进行处理,恢复业务步骤:

1)查看报警信息,确认业务是否收到影响,必要时切从库进行数据交互
2)IDC询问排查
3)确认硬件故障,短时间无法修复开Case处理
4)通知部门领导,处理进度,并实时记录
5)事件处理完成后,拟写故障报告,会议通报。

三、MySQL service问题处理思路

1)首先要做的就是判断是否影响业务,是否需要切库,保证业务运行时首要任务
2)如果此时需要切从库,安装如下步骤进行:

1>   先查看MySQL 从库状态
       show processlist\G
##如果看到两个状态,说明此时的从库和主库是同步的  =====[如果不同步,建议考出binlog进行同步]
#state: waiting for master to send event   I/O线程
#state:has read all relay log;waiting for the slave I/O thread to update it    sql线程

2>   登录从库分别查看:【多个从库 哪个替代主库呢??】
cat /data/3306/data/master.info
cat /data/3307/data/master.info
##看哪个从库的哪个master.info哪个更新,就说明哪个从库一致性更高,所以此时就确定最新的库为主库。
选个pos最大的作为主库
或利用半同步的功能,直接选择做实时同步的这个从库。

3> 确保所有relay log全部更新完毕。
stop slave io_thread;show processlist;    [在每个从库上执行]
##直到看到has read all relay log;表示从库更新都执行完毕

4> 登录从库
mysql -uroot -p您的密码 -S /data/3306/mysql.sock  #sock路径根据自己的进行修改
stop slave;
reset master;
quit;

5> 进入数据库数据目录,删除master.info relay-log.info
cd /data/3306/data/master
rm -f master.info relay-log.info
## 检查授权表,类似read-only参数

6>  3306 提升从库为主库
vim /data/3306/my.cnf
开启:
log-bin =/data/3306/mysql-bin
## //如果存在log-slave-updates  read-only等参数一定要注释掉。
/data/3306/mysql  stop
/data/3306/mysql  start

到此,提升主库完毕

四、所有slave指向新的master

7> 如果主库服务器没down,需要去主库拉取bin-log补全提升主库的从库

8> 其它从库操作 【指向新的master】

已检查(同步user rep均存在)
登录从库
stop slave;
change master to master_host=‘192.168.1.32‘; //如果不同步,就指定位置点
start slave;
show slave status\G;

以上就是关于数据库如何快速回复业务的介绍,如果大家有更好的方法可以告诉我,下面是集中数据库高可用方案:

1.MHA 高可用 http://blog.51cto.com/qiuyt/1930629

2.RDS 高可用+自动容灾 https://www.aliyun.com/product/rds/mysql【借用图

3.快照


方法很多,就看您如何选择。

五、另外关于ECS无法使用 MHA 说法问题解释

1、mha必须是0.56版本才支持GTID

2、阿里云ECS不支持浮动IP  阿里云HaVIP禁用
##要注意:阿里云的上ECS服务器跟我们自己的虚拟机不一样,它不支持浮动IP的

3、阿里云服务器上keepalived只能设置单播

4、keepalived配置文件里加脚本判断mysql是否启动需要首尾写好配置文件

原文地址:http://blog.51cto.com/qiuyt/2148881

时间: 2024-10-12 04:39:23

Mysql主从架构-主库宕机如何恢复业务的相关文章

MySQL 主从架构配置详解

无论是哪一种数据库,数据的安全都是至关重要的,因此熟练掌握数据库的安全备份功能,是作为开发人员,特别是后端开发人员的一项必备技能.MySQL 数据库内建的复制功能,可以帮助我们对数据进行异地备份,读写分离,在较大程度上避免数据丢失.数据库服务器压力过大甚至宕机带来的损失. 使用MySQL 主从架构一年多了,想起当年学习这些东西的时候,苦于完整的中文资料比较少,当时英文又不太好,遇到不少问题.刚好最近也有一段时间没更新博客了,心血来潮,决定翻译一下 MySQL 官网的英文文档,官网文档讲解的非常详

使用Innobackupex快速搭建(修复)MySQL主从架构

MySQL的主从搭建大家有很多种方式,传统的mysqldump方式是很多人的选择之一.但对于较大的数据库则该方式并非理想的选择.使用Xtrabackup可以快速轻松的构建或修复mysql主从架构.本文描述了使用innobackupex快速来搭建或修复主从架构.供大家参考. 1.基于主库做一个完整备份 # mkdir -p /log/bakforslave # innobackupex --user=root -password=*** --socket=/tmp/mysql.sock --def

mysql-poxy 实现mysql主从架构读写分离

在高并发系统设计中,后端数据库的性能往往会成为系统的瓶颈,这时候就需要进行合理的设计,以分摊后端数据库的压力,比如在数据层前面构建缓存层.数据文件存放在RAID这样的设备.对数据进行分库分表分区存放.合理利用索引.进行数据的读写分离等.mysql-proxy提供了mysql数据库的读写分离能力,mysql-proxy通过Lua脚本能分析得出用户的sql请求,如果发现在是read请求,则会转化到master-slave模型的slave中,如果是write请求,则会转发到master中,以达到读写分

MySQL主从架构之Master-Slave主从同步

MySQL复制 MySQL复制是指将主库上的DDL和DML操作通过二进制日志传到从库上,使主库和从库上的数据保持同步 MySQL主从架构:优点:故障时候可以切库:读写分离:从库执行其他业务例如备份. 1:Master-Slave    主从同步 2:Master-Slave-Slave……级联 3:Master-Master   互为主备 [主从同步]Master-Slave 注:需要主库打开log-bin ;设置server-id #mysqldump -uroot -p --all-data

使用innobackupex基于从库搭建mysql主从架构

?? MySQL的主从搭建大家有很多种方式,传统的mysqldump方式是很多人的选择之一.但对于较大的数据库则该方式并非理想的选择.使用Xtrabackup可以快速轻松的构建或修复mysql主从架构.本文描述了基于现有的从库来快速搭建主从,即作为原主库的一个新从库.该方式的好处是对主库无需备份期间导致的相关性能压力.搭建过程中使用了快速流备份方式来加速主从构建以及描述了加速流式备份的几个参数,供大家参考. 有关流式备份可以参考:Xtrabackup 流备份与恢复 1.备份从库###远程备份期间

MySQL主从架构详解

1.复制概述 Mysql内建的复制功能是构建大型,高性能应用程序的基础.将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机的数据复制到其它主机(slaves)上,并重新执行一遍来实现的.复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器.主服务器将更新写入二进制日志文件,并维护文件的一个索引以跟踪日志循环.这些日志可以记录发送到从服务器的更新.当一个从服务器连接主服务器时,它通知主服务器从服务器在日志中读取的最后一次成功更新的位置.从服务器接收

支持宕机自动恢复触发一次性或周期性任务执行的组件包-easyTask

easyTask 一个方便触发一次性或周期性任务执行的工具包,支持海量,高并发,高可用,宕机自动恢复任务 开源项目地址:https://github.com/liuche51/easyTask   请多多关注 Usage scenarios 需要精确到秒的某一时刻触发任务执行.比如订单交易完成24小时后如果客户未评价,则系统自动给出评价. 需要周期性的执行某个任务.比如每天下午6点,提醒员工下班关机. Features 使用简单 秒级精度任务执行计划 支持海量任务提交执行 支持高并发执行任务 支

mysql主从架构-主从正常切换,主库宕机切换。

MySQL主从切换手册 Master-Slave架构 运维部 V1.0                   2016年      05月    24   日     正常切换 检查slave同步状态 1)在master执行:show processlist; 显示Master has sent all binlog to slave; waiting for binlog to be updated 2)在slave执行:show processlist: 显示Slave has read al

Redis(六)——高可用之哨兵sentinel配置与启动及主从服务宕机与恢复

.主从复制高可用 #主从复制存在的问题: 1 主从复制,主节点发生故障,需要做故障转移,可以手动转移:让其中一个slave变成master 2 主从复制,只能主写数据,所以写能力和存储能力有限 哨兵是对Redis的系统的运行情况的监控,它是一个独立进程,它会独立运行,功能有二个: 通过发送命令,让Redis服务器返回监控其运行状态,包括主服务器和从服务器. 当哨兵监测到master宕机,会自动将slave切换成master,然后通过发布订阅模式通知其他的从服务器,修改配置文件,让它们切换主机.