开发者社区> 余二五> 正文

mysql主从不同步的解决方式

简介:
+关注继续查看

上一篇说道,在应用层php做mysql读写分离的适合,我们用脚本监控发现主从不同步。这个适合我们就要手工的去把所有的操作都切换到住上去然后等主从重新同步:

主从同步恢复的方式,根据数据量的不同,我们总结一下两点

第一种:在数据差别不大,一致性要求不高的情况下,可以直接忽略错误直接手动恢复。

stop slave;

#表示跳过一步错误,后面的数字可变

set global sql_slave_skip_counter =1;

start slave;

之后再用mysql> show slave status\G 查看:

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

ok,现在主从同步状态正常了。。。

补充:要是发现还没有同步那就直接用手工去输入同步命令试试:(举例说明。自己的根据实际情况)

 CHANGE MASTER TO MASTER_HOST='192.168.38.135',
MASTER_USER='repl_user',
MASTER_PASSWORD='repl_password',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=323;

第二种:

该方法适用于主从库数据相差较大,或者要求数据完全统一的情况

解决步骤如下:

1.先进入主库,进行锁表,防止数据写入

使用命令:

mysql> flush tables with read lock;

注意:该处是锁定为只读状态,语句不区分大小写

2.进行数据备份

#把数据备份到mysql.bak.sql文件

[root@server01 mysql]#mysqldump -uroot -p -123456t> mysql.bak.sql

这里注意一点:数据库备份一定要定期进行,可以用shell脚本或者python脚本,都比较方便,确保数据万无一失

3.查看master 状态

mysql> show master status;
+-------------------+----------+--------------+-------------------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+-------------------+----------+--------------+-------------------------------+
| mysqld-bin.000001 | 323| | mysql,test,information_schema |
+-------------------+----------+--------------+-------------------------------+
1 row in set (0.00 sec)

4.把mysql备份文件传到从库机器,进行数据恢复

#使用scp命令

[root@server01 mysql]# scp mysql.bak.sql root@192.168.38.131:/tmp/

5.停止从库的状态

mysql> stop slave;

6.然后到从库执行mysql命令,导入数据备份(也可以使用mysql进行导入恢复)

mysql> source /tmp/mysql.bak.sql

7.设置从库同步,注意该处的同步点,就是主库show master status信息里的| File| Position两项

change master to master_host = '192.168.38.135', master_user = 'repl_user', master_port=3306, master_password='repl_password', master_log_file = 'mysqld-bin.000001', master_log_pos=323;

8.重新开启从同步

mysql> start slave;

9.查看同步状态

mysql> show slave status\G 查看:

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

好了,同步完成啦










本文转自 小罗ge11 51CTO博客,原文链接:http://blog.51cto.com/xiaoluoge/1565108,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
mysql主从分离
一、MySQL主从读写分离概念 二、MySQL主从库配置 三、总结
27 0
MySQL集群-主从服务器搭建(一主多从)
MySQL集群-主从服务器搭建(一主多从)
164 0
关于mysql集群主从服务器搭建
关于mysql集群主从服务器搭建
105 0
mysql进阶:canal搭建主从|集群架构
之前我们讲解过canal的各种应用,但是对于生产环境来讲,服务高可用是必须保证的。因此canal单节点是不能满足我们的需求的。就需要搭建canal集群。
222 0
【Docker 基础教程】Mysql主从服务搭建------Mysql容器闪退及容器名冲突系列问题
【Docker 基础教程】Mysql主从服务搭建------Mysql容器闪退及容器名冲突系列问题
76 0
【Docker 基础教程】Mysql主从环境搭建
【Docker 基础教程】Mysql主从环境搭建
154 0
MySQL 5.6 主从报错一例
MySQL 5.6 主从报错一例
103 0
关于Linux下Mysql集群同步(主从、一主多从、主从从)部署及同步策略的一些笔记
和小伙们分享一些Mysql集群主从同步部署相关的笔记 博文内容涉及: 为什么需要mysql集群主从同步 主从同步原理 部署不同主从结构的Mysql集群 一主一从 一主多从 主从从 主从同步使用的复制模式介绍配置 食用方式:了解Linux、Mysql即可 理解不足小伙伴帮忙指正
351 0
Mysql主从+springboot+mybatis实践篇
Mysql主从+springboot+mybatis实践篇
238 0
MySQL主从异常Coordinator stopped because there were error(s) in the worker(s). The most recent failur
MySQL主从异常Coordinator stopped because there were error(s) in the worker(s). The most recent failur
1841 0
+关注
余二五
文章
问答
视频
文章排行榜
最热
最新
相关电子书
更多
高效MySQL的N个习惯
立即下载
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
相关镜像