解决mysql一主多从宕机从库切换主继续和从同步教程

作者:袖梨 2022-11-14

目标:主库宕机了,从库提升为主库

准备环境:

1台web服务器

3台MySQL服务器

环境说明:

QQ20150902140934

1.web上跑着bbs网站服务,由MySQL-01提供数据库服务

2.MySQL-02和-03是MySQL-01的从库

突发事件:

这个时候,MySQL机器宕机,bbs.teddy.com是打不开的,提示无法连接数据库

一主多从宕机从库切换主继续和从同步过程步骤:

  • 确保所有的relay log全部更新完毕

在每个从库上执行stop slave io_thread; show processlist;

直到看到Has read all relay log,则表示从库更新都执行完毕了

QQ20150902134423QQ20150902134435

所有的relay log全部更新完毕

登陆所有从库,查看master.info文件,对比选择pos最大的作为新的主库,这里我们选择mysql-02为新的主库

  • 登陆mysql-02,执行stop slave; 并进入数据库目录,删除Info和relay-log.info文件, 配置my.cnf文件,开启log-bin,如果有log-slaves-updates和read-only则要注释掉;提升从库为主库,执行reset master,

QQ20150902134821

创建用于同步的用户

grant replication slave on *.* to rep@’10.0.0.%’ indentified by ‘123456’;
flush privileges;

创建用于bbs网站使用的用户

GRANT ALL ON bbs.* TO ‘bbs’@’Web-01’ IDENTIFIED BY ‘123456’;
flush privileges;

更新所有机器上的hosts文件

[root@web-01 teddylu]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
###########by teddylu###########
10.0.0.201     LVS-DR-01
10.0.0.202     LVS-DR-02
10.0.0.203     Web-01
10.0.0.204     Web-02
#10.0.0.205     MySQL-01
#10.0.0.206     MySQL-02
10.0.0.206     MySQL-01   #bbs的网站程序中关于数据库的信息里,MySQL-01是数据库的地址
10.0.0.207     NFS-Share

登陆其他从库操作,即mysql-03

CHANGE MASTER TO
MASTER_HOST=’10.0.0.205′,
MASTER_PORT=3306,
MASTER_USER=’rep’,
MASTER_PASSWORD=’123456′,
MASTER_LOG_FILE=’mysql-bin.000001′,
MASTER_LOG_POS=107;
start slave;

最后,检查是否主从同步了,网站是否能打开了

总结:从主库宕机,到从库接管,一共只花费了不到3分钟的时间(如果前期的系统架构做的好的话,时间会更少)。通过master.info文件来确定新的主库,这样,你的数据库的一致性和完整性就更高

a

相关文章

精彩推荐