`
javafan_303
  • 浏览: 957750 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

mysql主从数据不一致的解决方法

阅读更多

转载自 http://hi.baidu.com/thinkinginlamp/blog/item/84f30cf4470979e77609d79a.html

 

当使用MySQL主从服务器时。一个必须考虑的问题就是要有方法检测数据是否已经出现了不一致,幸好mk-table-checksum提供了这样的功能:

先安装依赖的模块:DBI,DBD::mysql(相关链接):

perl -MCPAN -e 'install DBI'
perl -MCPAN -e
'install DBD::mysql'

如果自动安装不好使,就手动下载安装,地址:http://search.cpan.org/

再安装Maatkit软件包,基本步骤很简单:

tar
zxvf maatkit-3519.tar.gz
cd
maatkit-3519

剩下的就是Perl软件安装的固定打法:

perl Makefile.PL
make
make
install

下面进入正题,看看如何核对主从服务器的数据一致性,操作都在主服务器上完成,所以是localhost:

mk-table-checksum
--createreplicate --replicate=test.checksum
localhost

需要说明的是test.checksum表示的是test数据库的checksum数据表(也可以使用别的数据库或数据表,只要保证它在主从服务器间没被忽略复制即可),有了createreplicate参数,系统会自动创建这个表,里面会保存一些核对数据,手册里还有很多其他的参数可以使用,恕不详述。

命令执行速度的快慢要视数据量的大小而定,执行完之后,就可以用下面的命令来查询是否存在不一致:

mk-table-checksum
--replicate=test.checksum --replcheck 1
localhost

其实就是查询test.checksum表里this_crc != master_crc的行,所以你也可以不用上面的命令而是手动查找。

需要说明的是replcheck参数指明了核对的级联深度,比如1表示此服务器和它的从服务器。

至于如何同步不一致的数据,可以使用Maatkit提供的另一个软件:mk-table-sync

mk-table-sync --execute --replicate
test.checksum
localhost

注意:如果你用的MySQL不支持触发器语法的话,记得在上面的命令里加上--ignore-triggers参数。

提示:虽然我们的操作都是在主服务器上完成的,但是mk能通过两个途径来自动找到从服务器,一个是SHOW
PROCESSLIST,另一个是SHOW SLAVE HOSTS(不过这个方法要求在从服务器上设定report-host等参数)

补充链接:OnlineDataDrift是Google针对mk-table-checksum的一个优化版本,可以看看。

BTW:ICC版二进制MySQL环境下DBD::mysql安装问题。

所谓ICC指的是Intel
C/C++ compiled,据说MySQL的ICC编译版本比一般的GCC编译版本效率要好一些。

不过如果采用ICC版本的话,在安装DBD::mysql时一不留神可能会遇到一些小问题,比如:

undefined
symbol:
_intel_fast_memcpy

究其原因,是因为MySQL是用ICC编译的,而缺省安装DBD::mysql时,使用的是GCC,所以出现未定义符号也是在所难免的事儿,解决方法是下载ICC库,解压缩安装到/usr/local/lib/icc目录。

tar zxvf
DBD-mysql-4.011.tar.gz
cd DBD-mysql-4.011

然后使用ICC参数手动安装DBD::mysql

perl Makefile.PL
\
--cflags='-I/usr/local/mysql/include' \
--libs='-L/usr/local/mysql/lib
-lmysqlclient -lz -lcrypt -lnsl -lm -L/usr/local/lib/icc
-lirc'

make
make install

和正常的编译参数相比,其实就是多了“-L/usr/local/icc
-lirc”而已,这样就OK了。

分享到:
评论

相关推荐

    MySQL主从不一致检查与修复

    本主题将深入探讨MySQL主从不一致的原因、检查方法以及修复策略,旨在帮助数据库管理员有效地解决这类问题。 一、主从不一致的原因 1. 网络延迟:网络不稳定或延迟可能导致主库的更新未及时同步到从库。 2. 错误的...

    MySQL主从数据校验工具

    MySQL主从数据校验工具是数据库管理中一个关键的组件,尤其在分布式系统或高可用性设置中,如主从复制架构。这类工具的主要目的是确保主数据库与从数据库之间的数据一致性,防止因网络延迟、错误同步或其他问题导致...

    mysql 主从 数据同步

    ### MySQL主从数据同步知识点详解 #### 一、MySQL主从复制原理及配置步骤 **主从复制**是MySQL的一项重要特性,它允许用户将一台MySQL服务器(主服务器)的数据实时复制到另一台或多台MySQL服务器(从服务器)。...

    MySQL主从一致性检查&修复攻略

    本文将详细介绍如何进行MySQL主从一致性检查和修复,以及相关工具的使用方法。 首先,主从一致性检查与修复是数据库管理员(DBA)必须掌握的一项重要技能。通过一致性检查,管理员可以发现并及时处理主从服务器之间...

    mysql主从数据搭建问题处理

    8. **工具辅助**:有许多工具可以帮助我们管理和优化MySQL主从复制,如`pt-table-checksum`用于检测主从数据一致性,`mysql-router`实现读写分离,`replication-manager`自动化管理复制。 9. **监控与调优**:持续...

    详解MySQL主从不一致情形与解决方法

    总的来说,解决MySQL主从不一致的关键在于理解问题的根源,适时调整配置,监控系统状态,并在必要时采取适当的同步策略。同时,定期进行数据备份和维护,可以降低不一致的风险,并确保数据的安全性和完整性。

    mysql 主从数据不一致,提示: Slave_SQL_Running: No 的解决方法

    通过上述两种方法的详细操作,用户可以根据自己的实际情况解决MySQL主从数据不一致的问题。此外,本文还提到了MySQL查询技巧、常用函数、日志操作、事务操作、存储过程以及数据库锁等相关技巧,这些内容对于深入理解...

    MySQL主从复制-主库已有数据的解决方案.docx

    第二种方案是对主库的数据进行备份,然后将主数据库中导出的数据导入到从数据库,然后再开启主从复制,以此来保证主从数据库数据一致。 2.1 查看主数据库已有的数据库 我们在主数据库准备了一个 TEST1 库,并且在...

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

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

    使用keepalived实现对mysql主从复制的主备自动切换.docx

    mysql主从复制是mysql数据库的一种高可用性解决方案,它可以将数据从主数据库同步到从数据库上,确保数据的一致性。在mysql主从复制环境中,keepalived可以实现自动切换,提高系统的可用性和可靠性。 实验环境 在...

    mysql主从数据库的优势

    MySQL主从服务器配置是数据库领域中一种常见的高可用性和高性能解决方案。这一机制允许数据从一个主服务器(Master)复制到一个或多个从服务器(Slave),以此来实现数据冗余、负载均衡和灾难恢复等功能。下面我们将...

    MySQL主从复制与读写分离.docx

    MySQL 主从复制是指将一个 MySQL 服务器的数据实时同步到另一个 MySQL 服务器中,以实现数据的高可用性和读写分离。下面是 MySQL 主从复制与读写分离的详细知识点: MySQL 主从复制 MySQL 主从复制是指将一个 ...

    Mysql 主从1062问题修复

    MySQL主从复制中的1062错误是数据一致性问题的一个常见标志,需要及时识别并处理。通过理解错误原因、熟悉解决策略以及采取预防措施,我们可以有效管理和维护主从复制环境,确保数据的完整性和系统的稳定性。在处理...

    如何恢复MySQL主从数据一致性

    MySQL主从数据一致性怎么恢复,MySQL主从数据库的数据不一致,猜测备库在同步过程中出现了问题,现在的问题很明确,就是如何恢复主从库数据的一致性,下文为大家分享解决方法,感兴趣的小伙伴们可以参考一下

    SpringBoot第 12 讲:SpringBoot+MySQL主从复制、读写分离

    主从复制是MySQL数据库的一种高可用性解决方案,其中一台服务器(主服务器)处理所有写操作,而其他服务器(从服务器)同步主服务器上的数据变化,从而形成一个读写分离的环境。这种设计模式有助于减轻主服务器的...

    MySQL 主从复制模式全面实践

    但它存在事务隔离性和数据一致性的问题。 - **多主监控(Master-Master-Monitor)**:三台机器互相作为对方的主服务器,但存在复制延迟和数据同步问题。 - **一从对多主(One Slave to Multiple Masters)**:这种...

Global site tag (gtag.js) - Google Analytics