当前位置:网站首页> MySQL主从切换的超详细步骤
MySQL主从切换的超详细步骤
2022-06-28 15:01:00 【1024问】
版本:
前言:
主从环境:
切换步骤:
总结
版本:MySQL-5.7.32+GTID
前言:本文讲述MySQL主从切换流程,切换步骤主要针对主备正常切换以及主库宕机备库切换两个场景,掌握正确的切换流程,可以有效避免切换过程中可能出现的数据不一致问题以及提高整体切换的时间
主从环境:
场景一:主备正常切换,此场景主要是针对在主备同步复制正常的情况下进行的主备切换,例如:灾备演练,计划性的主备切换。
切换步骤:1 切断应用对主库的流量
2 主库备库设置只读
set global read_only=ON;set global super_read_only=ON;3 查看备库复制进程状态
show slave status\G
确认Slave_IO_Running,Slave_SQL_Running状态为YES,Seconds_Behind_Master为0
4 比对主备两边的GTID是否一致
获取主备两边的executed_gtid集合,进行比对
select @@global.gtid_executed;

通过GTID_SUBSET函数进行比对
SELECT GTID_SUBSET(master_gtid_executed, slave_gtid_executed);若在master_gtid_executed中的GTID,也存在slave_gtid_executed中,则返回true(1),否则返回false(0)

返回一,代表主库GTID已经在从库完成执行过,两边是一致的
5 从库停掉复制进程并清空主从信息
stop slave;reset slave all;
6 从库关闭只读开启读写,转为新主库
set global read_only=off;set global super_read_only=off;
7 主库设置执行新主库的复制链路,转为新备库,完成主从切换
CHANGE MASTER TO MASTER_HOST='192.168.1.111',MASTER_USER='xxx',MASTER_PORT=3306,MASTER_PASSWORD='xxx',master_auto_position=1 ;start slave;show slave status\G
8 应用流量切向新主库
场景二:主库宕机备库切换为主库,这种情况主要是在异步模式或者非强一致半同步下,主库的异常宕机,可能存在数据没有完全同步到从库的情况,需要去核验追加数据。
1 对于主库宕机,数据库损坏没法正常启动时,如果binlog可以获取,则可以对binlog进行离线分析,获取差异的数据
获取备库那边已经执行过的gtid set
select @@global.gtid_executed
如果已经写入数据的新主库,不能直接读取binlog进行恢复,因为可能会出现数据不一致,主键冲突等问题,可以从binlog里面排除从库已经执行过的gtid并离线解析成sql语句,交给应用去分析是否补入数据
mysqlbinlog -vv --base64-output=decode-rows --exclude-gtids='1b80feab-4aa6-11ec-9a60-000c29a6e7be:1-10,2b3039c9-57fa-11eb-b504-000c29ed797a:1-8256287,3a59d149-d4b8-11eb-8cf6-000c29a6e7b4:1-10,a0a3d4b2-fff8-11eb-a420-000c29a6e7be:1-10011' /opt/mysql/log/nlog.000150 > /tmp/binlog_150_gtid.sql;
如果从库应用还未写入,未产生新数据,则可以从binlog里面排除从库已经执行过的gtid直接导入追加数据
mysqlbinlog --exclude-gtids='1b80feab-4aa6-11ec-9a60-000c29a6e7be:1-10,2b3039c9-57fa-11eb-b504-000c29ed797a:1-8256287,3a59d149-d4b8-11eb-8cf6-000c29a6e7b4:1-10,a0a3d4b2-fff8-11eb-a420-000c29a6e7be:1-10011' /opt/mysql/log/nlog.000150 | mysql -uroot -p -S /opt/mysql/3306/data/mysql.sock -P33062 对于主库宕机,但旧主库可以重新启动拉起,则在启动后,如果新主库应用还未写入新数据,可以将新主库change master复制继续指向旧主库,读取未应用的日志恢复;
已经写入数据的新主库,不能直接读取binlog进行恢复,因为可能会出现数据不一致,主键冲突等问题,而是应该将数据解析成sql语句,让应用去分析是否补入数据。
用my2sql在线解析binlog日志获取sql语句,需要获取开始的日志号以及读取位点,读取位点可以根据--exclude-gtids排除gtid后解析binlog的开始位置读取

my2sql -user xxxx -password xxxx -work-type 2sql -start-file /opt/mysql/log/nlog.000150 -start-pos=7940194 --add-extraInfo -output-dir /tmp/my2sql_recover目录下会生产forward+日志号的文本,里面存放解析出来的sql


到此这篇关于MySQL主从切换的文章就介绍到这了,更多相关MySQL主从切换内容请搜索软件开发网以前的文章或继续浏览下面的相关文章希望大家以后多多支持软件开发网!
边栏推荐
- [MySQL learning notes 24] index design principles
- 雷科防务:4D毫米波雷达产品预计可以在年底量产供货
- 2022 welder (technician) examination question bank simulated examination platform operation
- 成龙和快品牌,谁才是快手的救星?
- 美因基因港交所上市:市值43亿港元 IPO被市场忽略
- 技术弄潮儿
- Facebook出手!自适应梯度打败人工调参
- 力扣今日题-522. 最长特殊序列
- Functools: high order functions and operations on callable objects (continuous updating ing...)
- Is PMP really useful?
猜你喜欢
随机推荐
不要使用短路逻辑编写 stl sorter 多条件比较
新零售线下店逆势起飞,通膨乌云下的消费热情
Ionq and Ge research confirmed that quantum computing has great potential in risk aggregation
vector详解+题目
力扣今日题-522. 最长特殊序列
Steve Jobs of the United States, died; China jobs, sold
运行近20年,基于Win 98的火星探测器软件迎来首次升级
Talking from the little nematode -- tracing the evolution of nervous system and starting life simulation
WPF 视频硬解码渲染播放(无空域)(支持4K、8K、高帧率视频)
Summary of technical difficulties of wearable neural signal and behavior data detection and recording system for birds in flight
【算法篇】刷了两道大厂面试题,含泪 ”重学数组“
Leetcode(167)——两数之和 II - 输入有序数组
抽奖动画 - 鲤鱼跳龙门
从五大能力到 “1+5+N”,华为让政企转型更稳健
Facebook出手!自适应梯度打败人工调参
functools:对callable对象的高位函数和操作(持续更新ing...)
Opengauss kernel: analysis of SQL parsing process
环保产品“绿色溢价”高?低碳生活方式离人们还有多远
坐拥1200亿,她又要IPO敲钟了
Calculator (force buckle)


![[C language] how to generate normal or Gaussian random numbers](/img/31/964e0922e698a3746599b840501cdf.png)



![[C language] nextday problem](/img/7b/422792e07dd321e3a37c1fff55c0ca.png)

