解决MySQL主从不同步问题

解决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文件

[[email protected] 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命令

[[email protected] mysql]# scp mysql.bak.sql [email protected]:/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

时间: 2024-11-04 19:50:45

解决MySQL主从不同步问题的相关文章

使用Percona Toolkit解决Mysql主从不同步问题【备忘】

由于各种原因,mysql主从架构经常会出现数据不一致的情况出现,大致归结为如下几类 1:备库写数据 2:执行non-deterministic query 3:回滚掺杂事务表和非事务表的事务 4:binlog或者relay log数据损坏 数据不同步给应用带来的危害是致命的,当出现主从数据不一致的情况,常见的应对方法是先把从库下线,然后找个半夜三更的时间把应用停掉,重新执行同步,如果数据库的体积十分庞大,那工作量可想而知,会让人崩溃.本文介绍使用percona-toolkit工具对mysql主从

2种方法解决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,现在主从同步状态正常了... 方式二:重新做

MySQL主从数据库同步延迟问题解决(转)

最近在做MySQL主从数据库同步测试,发现了一些问题,其中主从同步延迟问题是其中之一,下面内容是从网上找到的一些讲解,记录下来以便自己学习: MySQL的主从同步是一个很成熟的架构,优点为:①在从服务器可以执行查询工作(即我们常说的读功能),降低主服务器压力;②在从主服务器进行备份,避免备份期间影响主服务器服务;③当主服务器出现问题时,可以切换到从服务器. MySQL主从同步故障-Slave_SQL_Running: No http://www.linuxidc.com/Linux/2014-0

MySQL主从说明详解、MySQL主从不同步处理方案

MySQL主从说明 同步问题 mysqldump:此工具适用于10G以下数据库或几个表percona-Xtrabackup备份工具:适用于100G-500GLVM快照:更大的数据量,或分库分表 主从复制目的 读写分离,减轻主库负载或数据分析: 数据安全,做备份恢复: 主从切换,做高可用: 常见主从结构: 一主一从:一个Master,一个Slave一主多从:一个Master,多个slave Master节点:负责所有的[写]请求Slave节点:负责大部分的[读]请求 主从复制步骤 A数据更新 A写

mysql主从不同步的解决方式

上一篇说道,在应用层php做mysql读写分离的适合,我们用脚本监控发现主从不同步.这个适合我们就要手工的去把所有的操作都切换到住上去然后等主从重新同步: 主从同步恢复的方式,根据数据量的不同,我们总结一下两点 第一种:在数据差别不大,一致性要求不高的情况下,可以直接忽略错误直接手动恢复. stop slave; #表示跳过一步错误,后面的数字可变 set global sql_slave_skip_counter =1; start slave; 之后再用mysql> show slave s

如何实现 MySQL 的读写分离?MySQL 主从复制原理的是啥?如何解决 MySQL 主从同步的延时问题?

高并发这个阶段,肯定是需要做读写分离的,啥意思?因为实际上大部分的互联网公司,一些网站,或者是 app,其实都是读多写少.所以针对这个情况,就是写一个主库,但是主库挂多个从库,然后从多个从库来读,那不就可以支撑更高的读并发压力了吗? 如何实现 MySQL 的读写分离? 其实很简单,就是基于主从复制架构,简单来说,就搞一个主库,挂多个从库,然后我们就单单只是写主库,然后主库会自动把数据给同步到从库上去. MySQL 主从复制原理的是啥? 主库将变更写入 binlog 日志,然后从库连接到主库之后,

Mysql主从不同步问题处理案例

在使用Mysql的主从复制架构中,有两个比较头疼的问题: 1.主从数据不同步后如何处理 2.主从同步延迟问题如何解决 本文将根据实际案例来分析下问题1,至于问题2多数文档介绍的办法是启用多线程复制来解决,言归正传,这里的问题1还可以细分成两种情况. 1.Slave_IO_Running和Slave_SQL_Running在YES情况下,主从数据不同步如何处理? 2.Slave_SQL_Running在NO情况下,主从数据不同步如何处理? 出现第一种情况通常原因是手工去修改了从库的数据导致主从数据

MYSQL主从不同步延迟原理分析及解决方案

1.网络的延迟由于mysql主从复制是基于binlog的一种异步复制,通过网络传送binlog文件,理所当然网络延迟是主从不同步的绝大多数的原因,特别是跨机房的数据同步出现这种几率非常的大,所以做读写分离,注意从业务层进行前期设计.2.主从两台机器的负载不一致由于mysql主从复制是主数据库上面启动1个io线程,而从上面启动1个sql线程和1个io线程,当中任何一台机器的负载很高,忙不过来,导致其中的任何一个线程出现资源不足,都将出现主从不一致的情况.3.max_allowed_packet设置

一种粗暴快速的解决mysql主从不同步错误的思路

mysql主从经常会出现主从数据不同步的问题,脏数据会造成主从同步中断, 出现大量ERROR,如1032,1062等错误.常规方法是逐条删除脏数据或者 重做库,由于数据量大操作麻烦,而且主库在线上运行不能有锁表操作, 各种不便特别费时间.笔者在生产环境遭遇了一次,情急之下用粗暴的方法 不到10分种解决问题.下面假设一种情况,主库正常,从库数据不一致, 解决思路步骤如下: 1 ,对故障定性,通过查看最近日志来找出蛛丝马迹.一般都用mysqlbinlog /var/lib/myql/mysqld-b