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

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


最新博客地址: https://www.dgstack.cn/archives/178.html

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


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

1、Mysql主库宕机状况分类:

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


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


2、硬件问题处理思路

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

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

3、MySQL service问题处理思路

1)首先要作的就是判断是否影响业务,是否须要切库,保证业务运行时首要任务
2)若是此时须要切从库,安装以下步骤进行: vim

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

到此,提高主库完毕

4、全部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 高可用 https://blog.51cto.com/qiuyt/1930629

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

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

3.快照

方法不少,就看您如何选择。

5、另外关于ECS没法使用 MHA 说法问题解释

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

二、阿里云ECS不支持浮动IP  阿里云HaVIP禁用
##要注意:阿里云的上ECS服务器跟咱们本身的虚拟机不同,它不支持浮动IP的

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

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

阿里云工单反馈截图
Mysql主从架构-主库宕机如何恢复业务服务器

相关文章
相关标签/搜索