您的位置:首页 > 数据库 > MySQL

MySQL主从复制故障案例二

2016-07-03 18:34 337 查看
案例二:

一主多从的架构下,主库master宕机
解决思路:

1,登录从库
show processlist;
查看两个线程的更新状态



结果说明:
之前主从同步正常

分别登录其余2个从库32,33查看:

cat   /data/3306/data/master.info
cat   /data/3307/data/master.info


比较,那个POS最大,说明更接近主库,那么我们就选举此slave作为新的master。
或者利用半同步技术,直接选举实时同步了的这个库为新的master

如果,master down掉,此时master还在有写入,我们需要将master的binlog拉到新选中的slave,
进行数据补全,在把其他slave执行新选中的master,使其继续同步。

切换步骤以及注意事项:

1,确保所有的relay_log 全部更新完毕
在每个从库执行
stop slave io_thread;
show processlist;
直达看到Has read all relay log; 表示从库更新都执行完毕;


2,登录
新选举的master(也就是旧的一个slave),执行以下命令
stop slave;
reset master;
quit;


3,进入新选举的slave数据目录,删除master.info relay-log.info ,防止继续从旧的master读数据
cd   /data/3306/data
rm -rf  master.info relay-log.info
检查授权表,read-only 等参数,需要删除

4,提升次新选举的从库为主库
vim /data/3306/my.cnf
开启binlog:
log-bin = mysql-bin
如果存在以下参数,一定要删除
log-slave-updates
read-only
--replication-do-db
--replication-ignore-db
--replication-do-table
--replication-ignore-table
--replication-wild-do-table
--replication-wild-ignore-table
重启服务、提升主库完毕

5,如果主库服务器没宕,需要去主库拉去binlog,补全主库的从库

6,其他从库操作
检查(同步user,rep均存在,意思就是保证其他slave有权限连接新的master)
登录slave:
stop slave
change master to master_host='new_master_ip';如果不同步,就指定POS
start slave;
show slave status\G;


++++++++++++主库宕机切换成功

7,修改程序配置文件,将之前的masterIP更换为新的masterIP
重启服务

本文出自 “crazy_sir” 博客,请务必保留此出处http://douya.blog.51cto.com/6173221/1795367
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: