mysql如果主库宕机,如何解决?

两种情况服务器down机,数据库down机

如果此时需要切从库

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
1、先show processlist\G,查看状态
 
如果看到两个状态,说明此时的从库和主库是同步的
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最大的作为主库
或利用半同步的功能,直接选择做实时同步的这个从库。
 
1、确保所有relay log全部更新完毕。
在每个从库上执行stop slave io_thread;show processlist;
直到看到has read all relay log;表示从库更新都执行完毕
 
2、登录从库
mysql -uroot -p123 -S /data/3306/mysql.sock
stop slave;
reset master;
quit;
 
 
3、进入数据库数据目录,删除master.info relay-log.info
cd /data/3306/data/master
rm -f master.info relay-log.info
检查授权表,类似read-only参数
 
43306提升从库为主库
vim /data/3306/my.cnf
开启:
log-bin =/data/3306/mysql-bin
//如果存在log-slave-updates  read-only等参数一定要注释掉。
/data/3306/mysql  stop
/data/3306/mysql  start
到此,提升主库完毕
 
 
 
5、如果主库服务器没down,需要去主库拉取bin-log补全提升主库的从库
 
 
6、其他从库操作
 
已检查(同步user rep均存在)
登录从库
stop slave;
change master to master_host='192.168.1.32'; //如果不同步,就指定位置点
start slave;
show slave status\G;

  

posted @   JvvYou  阅读(3063)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· winform 绘制太阳,地球,月球 运作规律
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示