`
李东哲
  • 浏览: 4430 次
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

2种方法解决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

好了,同步完成啦。
原文地址:http://www.cnblogs.com/blueel/archive/2013/01/06/2847842.html
分享到:
评论

相关推荐

    mysql主从同步解决方案及优化

    在应用场景和业务限制方面,MySQL主从同步虽然有诸多好处,但并不适合所有的业务场景。例如在需要极高一致性的场景下,主从同步可能会存在光速问题,即数据传播速度的物理限制,或者更新延迟问题,导致数据同步不够...

    Linux配置mysql主从同步

    在数据库管理领域,MySQL主从同步是一种常见的数据复制技术,它可以帮助我们构建高可用性和数据冗余性,从而提高系统的稳定性和可靠性。本文将详细介绍如何在Linux环境下配置MySQL的主从同步,并通过具体的步骤演示...

    如何在两台MySQL数据库间实现同步

    在开发环境中,有时需要在两台MySQL数据库之间实现数据同步,以确保数据的一致性和冗余。本教程将详细介绍如何在两台运行相同系统(FreeBSD 5.4)和软件(Apache 2.0.55、PHP 4.4.0、MySQL 4.1.15)的服务器上配置...

    mysql 半同步复制模式

    MySQL的半同步复制模式(Semi-Synchronous Replication)是一种增强型的复制策略,旨在解决传统异步复制中数据丢失的问题。在半同步复制中,主库确保至少有一个从库接收到并写入了事务日志(二进制日志,binlog)后...

    ogg sqlserver-oracle mysql-oracle mysql-mysql的同步配置参考

    2. MySQL到Oracle的同步配置: - 对于MySQL源端,你需要配置GoldenGate的抽取进程(EXTRACT),可能需要使用MySQL的binlog reader API来跟踪数据变更。 - Oracle目标端的配置与SQL Server到Oracle类似,设置PUMP...

    比较MYSQL结构并同步

    2. 数据库设计工具:很多数据库设计工具(如Navicat、MySQL Workbench等)提供了比较和同步功能,能自动识别并解决结构差异。 3. 自动化脚本:编写自定义脚本,通过查询信息模式(information_schema)来比较数据库...

    mysql5.7双向实时同步

    双向实时同步是MySQL高可用性架构中的重要组成部分,它提供了一种健壮的数据保护机制,但同时也需要谨慎操作,以防止数据不一致和系统崩溃。在实际部署中,还需要考虑网络延迟、数据冲突解决策略、性能影响等因素,...

    java实现两个mysql同步主库的数据

    2. **获取主库binlog位置**:在开始同步之前,你需要知道主库当前binlog的位置,这可以通过执行SQL查询来获取。 3. **监听binlog**:Java中有一些库可以帮助我们监听binlog的变化,例如`mysql-binlog-connector-...

    Linux-Mysql主从同步配置

    Linux-Mysql 主从同步配置 本文将详细解释 Linux-Mysql 主从同步配置的步骤和知识点。 一、主服务器配置 1. 编辑数据库配置文件 my.cnf, 一般在/etc/目录下。 2. 在[mysqld]下面加入以下代码: * log-bin=mysql...

    如何实现MySQL的主从复制和半同步复制

    MySQL半同步复制(Semi-Synchronous Replication)是一种增强主从复制一致性的方法,它确保在主服务器上的事务提交之前,至少有一个从服务器接收到并应用了该事务的日志。 1. **半同步插件**:MySQL提供了一个名为`...

    Mysql一键数据库同步和主主同步脚本

    执行"**Mysql一键数据库同步和主主同步脚本**",用户无需手动配置复杂的同步参数,只需在解压后的目录中运行`dos2unix *`命令。`dos2unix`是一个工具,用于将DOS或Windows格式的文本文件转换为Unix/Linux格式,以...

    MySQL数据库的同步

    Java是一种流行的、跨平台的编程语言,具有丰富的库支持和强大的网络功能,因此适合用于构建数据库同步解决方案。 数据库同步的技术方案多种多样,包括异步复制、半同步复制、多源复制等。MySQL中的复制功能允许一...

    sqlserver与mysql数据库同步

    在SQL Server与MySQL之间进行同步,通常有两种主要方法:双向同步和单向同步。双向同步意味着两个数据库都可以作为源和目标,数据更新可以在两个方向上流动;单向同步则是指数据只在一个方向上移动,比如从SQL ...

    02-基于Apache SeaTunnel的MySQL到Elasticsearch实时同步解决方案-线上 meetup11.16

    Apache SeaTunnel 作为开源的数据集成工具,提供了一种高效、灵活的解决方案来实现实时从 MySQL 同步数据到 Elasticsearch。配合 Easy-Es 和 es-client 等工具,可以简化 Elasticsearch 的日常管理和操作。通过参与...

    LVS+Keepalived+MySQL半同步主主复制高可用方案.docx

    LVS+Keepalived+MySQL半同步主主复制方案提供了一种高可用性和数据一致性的解决方案,适用于需要高稳定性和容错能力的环境。通过适当的配置和管理,可以实现高效的数据库管理和维护。然而,需要注意的是,该方案可能...

    mysql表结构同步[源代码]

    MySQL表结构同步是一种数据库管理中的常见任务,尤其在多环境部署或者团队协作开发时尤为重要。本文将详细解析如何实现MySQL数据库表结构的同步,并结合给定的源代码资源"mysql表结构同步[源代码]"进行讲解。 首先...

    MySQL2MySQL离线同步工具

    MySQL到MySQL的离线同步工具是一种实用的数据库管理解决方案,尤其适用于需要在两个或多个MySQL实例之间保持数据一致性的场景。这种工具通常基于脚本语言,如Python,以实现高效且灵活的数据迁移。在这个特定的例子...

    一种基于binlog的可配置的mysql数据库实时同步方法.pdf

    总之,本发明的可配置MySQL数据库实时同步方法充分利用了binlog的优势,为实现高可用性的数据库系统提供了有效解决方案,提高了系统的可靠性和用户体验。在大数据和云计算背景下,这种技术的应用具有广泛前景。

    mysql 双向同步的键值冲突问题的解决方法

    总的来说,解决MySQL双向同步中的键值冲突问题,关键在于利用`auto_increment_offset`和`auto_increment_increment`参数,合理规划每个服务器的自增长ID序列,以确保数据的一致性和完整性。同时,为了保证整个系统的...

Global site tag (gtag.js) - Google Analytics