解决MySQL主从不同步问题

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介:

解决mysql主从不同步

今天发现Mysql的主从数据库没有同步

 

先上Master库:

 

mysql>show processlist;   查看下进程是否Sleep太多。发现很正常。

show master status; 也正常。

 

mysql> show master status;

+-------------------+----------+--------------+-------------------------------+

| File              | Position | Binlog_Do_DB | Binlog_Ignore_DB              |

+-------------------+----------+--------------+-------------------------------+

| mysqld-bin.000001 |     3260 |              | mysql,test,information_schema |

+-------------------+----------+--------------+-------------------------------+

1 row in set (0.00 sec)

 

再到Slave上查看

 

mysql> show slave status\G                                                

 

Slave_IO_Running: Yes

Slave_SQL_Running: No

 

可见是Slave不同步

 

下面介绍两种解决方法:

 

 

方法一:忽略错误后,继续同步

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

 

解决: 

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,现在主从同步状态正常了。。。

 

 

方式二:重新做主从,完全同步

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

 

解决步骤如下:

 

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

 

使用命令:

 

mysql> flush tables with read lock;

 

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

 

2.进行数据备份 

 

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

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

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

3.查看master 状态

 

mysql> show master status;

+-------------------+----------+--------------+-------------------------------+

| File              | Position | Binlog_Do_DB | Binlog_Ignore_DB              |

+-------------------+----------+--------------+-------------------------------+

| mysqld-bin.000001 |     3260 |              | mysql,test,information_schema |

+-------------------+----------+--------------+-------------------------------+

1 row in set (0.00 sec)

 

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

 

#使用scp命令

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

 

5.停止从库的状态

mysql> stop slave;

 

 

6.然后到从库执行mysql命令,导入数据备份

 

mysql> source /tmp/mysql.bak.sql

 

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

 

change master to master_host = '192.168.128.100', master_user = 'rsync', master_port=3306, master_password='', master_log_file = 'mysqld-bin.000001', master_log_pos=3260;

 

8.重新开启从同步

mysql> start slave;

 

9.查看同步状态

mysql> show slave status\G  查看:

 

Slave_IO_Running: Yes

Slave_SQL_Running: Yes















本文转自浅景尘51CTO博客,原文链接:http://blog.51cto.com/857803451/1950938 ,如需转载请自行联系原作者


相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
关系型数据库 MySQL
MySql 183.从不订购的客户
MySql 183.从不订购的客户
162 0
MySql 183.从不订购的客户
|
SQL 关系型数据库 MySQL
|
SQL 监控 关系型数据库
|
关系型数据库 MySQL 数据库
|
SQL 关系型数据库 MySQL
|
SQL MySQL 关系型数据库
MySQL主从不一致发现的细小问题分析(r12笔记第63天)
   今天和同事一起看了一个问题,她在一个主从环境中发现了数据不一致,存在主键冲突。     show slave status的报错信息大概是下面的样子。
1396 0
|
关系型数据库 MySQL 测试技术
MySQL自增列主从不一致的测试(r12笔记第37天)
    MySQL里面有一个问题尤其值得注意,那就是自增列的重复值问题,之前也简单分析过一篇,但是在后续我想了下,还有很多地方需要解释,一个就是从库的自增列是如何维护的,是否重启从库,自增列会受到影响。
1521 0
|
SQL 关系型数据库 MySQL
MySQL主从不一致的修复过程
昨天发现一个5.7的MySQL从库在应用日志的时候报出了错误。从库启用过了并行复制。Last Error的内容为: Last_Error: Coordinator stopped because there were error(s) in the worker(s).
1399 0
|
SQL 监控 关系型数据库
使用Percona Toolkit解决Mysql主从不同步问题【备忘】
由于各种原因,mysql主从架构经常会出现数据不一致的情况出现,大致归结为如下几类 1:备库写数据 2:执行non-deterministic query 3:回滚掺杂事务表和非事务表的事务 4:binlog或者relay log数据损坏 数据不同步给应用带来的危害是致命的,当出现主从数据不一致的情况,常见的应对方法是先把从库下线,然后找个半夜三更的时间把应用停掉,重新执行同步,如果数据库的体积十分庞大,那工作量可想而知,会让人崩溃。
1284 0

推荐镜像

更多