码迷,mamicode.com
首页 > 其他好文 > 详细

一主两从结构中,如果主库挂了,怎么选举出来一个新主

时间:2017-09-14 00:32:54      阅读:129      评论:0      收藏:0      [点我收藏+]

标签:log   stat   完成   应该   exec   relay   变化   thread   输出   

仅限下面的双从情况:
M->S1 & M->S2;
 

看从库的show slave status\G;输出。
 
首先,判断一下每个slave是不是同步完成:
sql_thread和io_thread是不是执行到同一个位置。
io_thread的判断依据:master_log_file和read_master_log_pos。
sql_thread的判断依据:relay_master_log_file和exec_master_log_pos。
 
(问:如果io_thread是 connect,从库的数据是否还会变化?答:会,要等待sql_thread执行完毕。)
 
两个从库S1、S2分别判断同步完成,谁同步最靠前,谁当主。 
可以比较(前提是要看他们的同步完成)S1.Relay_Master_Log_File == S2.Relay_Master_Log_File、
S1.Exec_Master_Log_Pos == S2.Exec_Master_Log_Pos。
同样也可以比较
S1.Master_Log_File == S2.Master_Log_File 
S1.Read_Master_Log_Pos == S2.Read_Master_Log_Pos
 
假设Master_Log_File==relay_master_log_file但是io.read_master_log_pos >sql.exec_master_log_pos说明什么?
说明relay_log没有应用完,这种情况不能作为主库,遇到这种场景应该等一会让它执行完(一般不会等太长时间,大概2-5秒)。
 
 
在GTID环境:比较GTID。
 
问题:原来的主库怎么办?变成从加入。

一主两从结构中,如果主库挂了,怎么选举出来一个新主

标签:log   stat   完成   应该   exec   relay   变化   thread   输出   

原文地址:http://www.cnblogs.com/liang545621/p/7518382.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!