- 浏览: 957750 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (189)
- 方案流程图及架构 (5)
- j2ee (5)
- ajax (2)
- oracle (1)
- pl/sql (0)
- designpattern (0)
- searchengine (2)
- mysql (28)
- sso (3)
- jvm (3)
- uml (0)
- oo (1)
- dboptimize (3)
- web2.0 (2)
- unix/linux (1)
- hadoop (4)
- mahout (0)
- android (2)
- html5 (0)
- solr (0)
- 分词 (0)
- 机器学习 (0)
- 育儿 (2)
- linux (5)
- im (1)
- hive (1)
- nginx (1)
- mysql复合索引的使用场景 (0)
- hadoop搭建报错 (1)
- qps (1)
- 架构 (1)
- nosql (1)
- 推荐引擎 (5)
- 云存储 (1)
- 职业生涯 (1)
- 破解 instsall4j (1)
- 数字教育 微课程 (1)
- khan 可汗学院 (1)
- socket (2)
- 消息队列 (0)
- java (0)
- 视频流媒体 (1)
- memcache (1)
- 开源 (1)
- reactor (1)
- spi (1)
- 持续构建 ci (1)
- zookeeper (3)
- tomcat (1)
- mycat (1)
- mysql mycat sysbench (1)
- mycat mysql (1)
- svn (1)
- id发号器 (1)
- 多机房 (2)
- 分布式事务 (3)
- 电商 (1)
- 库存 (1)
最新评论
-
baichoufei90:
hadoop权威指南说ZK的zab协议不是用的paxos算法。 ...
zookeeper原理(转) -
shin1355:
看了一小部分,看不下去了,
zookeeper原理(转) -
b_l_east:
表示没看懂楼主关于选举算法的描述,顿时没了读下去的兴致
zookeeper原理(转) -
prince4426:
好前沿的技术呀
hive选型讨论 -
zk519720303:
zookeeper原理(转)
转载自 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索引背后的数据结构及算法原理
2016-10-24 19:12 1306摘自http://blog.codinglabs.org/a ... -
MySQL的InnoDB索引原理详解
2016-03-29 11:18 686原文链接 http://www.codeceo.com/a ... -
sysbench压力测试
2015-10-20 10:58 28041.下载sysbench并安装 wget https:// ... -
mysql本地可以登录远程无法登录
2014-05-13 12:34 700mysql创建的用户本地可以登录,但是远程无法登录 原来是 ... -
mysql创建的用户本地无法登录
2014-05-13 12:33 571今天遇到一个诡异的问题,mysql创建的用户在本地无法登录, ... -
mysql的为什么?
2013-12-04 17:01 0什么是锁? 锁是怎么实现的? 高并发情况下锁对性能的影 ... -
mysqldump: Got error: 1449: The user specified as a definer
2013-03-07 15:20 1626备份数据库遇到如下的错误,我遇到了很多次,但是每次都忘记是怎么 ... -
mysql 5.1.34 主从复制部署手册
2013-01-28 09:21 1484******************************* ... -
mysql tps qps
2012-11-12 11:49 1289TPS - Transactions Per Second(每 ... -
mysql复合索引的使用场景
2011-11-22 15:54 23461、复合索引使用的目的是什么? :能形成索引覆盖,提高whe ... -
mysql 动态迁移架构(转)
2011-05-23 14:43 1592mysql 的架构已经讨论 ... -
mysql索引
2011-05-11 15:05 1109一、 MySQL: 索引以B树 ... -
mysql 分区功能介绍及实例
2011-04-01 18:54 1512一,什么是数据库分区 ... -
mysql 分表的三个方法
2011-04-01 18:51 1393一,先说一下为什么要 ... -
mysql 分区、分表的区别
2011-04-01 18:47 1871一,什么是mysql分表,分区 什么是分表,从表面意思上看呢 ... -
mysql临时表技巧
2011-01-25 11:23 937给定一个user表,包含id和uid两列,其中uid列可能有重 ... -
mysql查看数据库中表的大小、索引大小
2011-01-20 12:44 2537SELECT concat(round(table_ro ... -
mysql 存储过程
2010-12-13 14:09 1276最近在看运营系统的源码,里面用了很多存储过程来生成报表,mys ... -
mysql 从数据库slave 状态为no的解决方法
2010-12-07 10:27 1301从数据库的状态显示为如下 Slave_IO_Ru ... -
mysql数据导出到文件
2010-12-03 16:03 1309数据导出到文件,网上很多帖子都是乱写,郁闷一下,这么简单的东西 ...
相关推荐
本主题将深入探讨MySQL主从不一致的原因、检查方法以及修复策略,旨在帮助数据库管理员有效地解决这类问题。 一、主从不一致的原因 1. 网络延迟:网络不稳定或延迟可能导致主库的更新未及时同步到从库。 2. 错误的...
MySQL主从数据校验工具是数据库管理中一个关键的组件,尤其在分布式系统或高可用性设置中,如主从复制架构。这类工具的主要目的是确保主数据库与从数据库之间的数据一致性,防止因网络延迟、错误同步或其他问题导致...
### MySQL主从数据同步知识点详解 #### 一、MySQL主从复制原理及配置步骤 **主从复制**是MySQL的一项重要特性,它允许用户将一台MySQL服务器(主服务器)的数据实时复制到另一台或多台MySQL服务器(从服务器)。...
本文将详细介绍如何进行MySQL主从一致性检查和修复,以及相关工具的使用方法。 首先,主从一致性检查与修复是数据库管理员(DBA)必须掌握的一项重要技能。通过一致性检查,管理员可以发现并及时处理主从服务器之间...
8. **工具辅助**:有许多工具可以帮助我们管理和优化MySQL主从复制,如`pt-table-checksum`用于检测主从数据一致性,`mysql-router`实现读写分离,`replication-manager`自动化管理复制。 9. **监控与调优**:持续...
总的来说,解决MySQL主从不一致的关键在于理解问题的根源,适时调整配置,监控系统状态,并在必要时采取适当的同步策略。同时,定期进行数据备份和维护,可以降低不一致的风险,并确保数据的安全性和完整性。
通过上述两种方法的详细操作,用户可以根据自己的实际情况解决MySQL主从数据不一致的问题。此外,本文还提到了MySQL查询技巧、常用函数、日志操作、事务操作、存储过程以及数据库锁等相关技巧,这些内容对于深入理解...
第二种方案是对主库的数据进行备份,然后将主数据库中导出的数据导入到从数据库,然后再开启主从复制,以此来保证主从数据库数据一致。 2.1 查看主数据库已有的数据库 我们在主数据库准备了一个 TEST1 库,并且在...
在应用场景和业务限制方面,MySQL主从同步虽然有诸多好处,但并不适合所有的业务场景。例如在需要极高一致性的场景下,主从同步可能会存在光速问题,即数据传播速度的物理限制,或者更新延迟问题,导致数据同步不够...
mysql主从复制是mysql数据库的一种高可用性解决方案,它可以将数据从主数据库同步到从数据库上,确保数据的一致性。在mysql主从复制环境中,keepalived可以实现自动切换,提高系统的可用性和可靠性。 实验环境 在...
MySQL主从服务器配置是数据库领域中一种常见的高可用性和高性能解决方案。这一机制允许数据从一个主服务器(Master)复制到一个或多个从服务器(Slave),以此来实现数据冗余、负载均衡和灾难恢复等功能。下面我们将...
MySQL 主从复制是指将一个 MySQL 服务器的数据实时同步到另一个 MySQL 服务器中,以实现数据的高可用性和读写分离。下面是 MySQL 主从复制与读写分离的详细知识点: MySQL 主从复制 MySQL 主从复制是指将一个 ...
MySQL主从复制中的1062错误是数据一致性问题的一个常见标志,需要及时识别并处理。通过理解错误原因、熟悉解决策略以及采取预防措施,我们可以有效管理和维护主从复制环境,确保数据的完整性和系统的稳定性。在处理...
MySQL主从数据一致性怎么恢复,MySQL主从数据库的数据不一致,猜测备库在同步过程中出现了问题,现在的问题很明确,就是如何恢复主从库数据的一致性,下文为大家分享解决方法,感兴趣的小伙伴们可以参考一下
主从复制是MySQL数据库的一种高可用性解决方案,其中一台服务器(主服务器)处理所有写操作,而其他服务器(从服务器)同步主服务器上的数据变化,从而形成一个读写分离的环境。这种设计模式有助于减轻主服务器的...
但它存在事务隔离性和数据一致性的问题。 - **多主监控(Master-Master-Monitor)**:三台机器互相作为对方的主服务器,但存在复制延迟和数据同步问题。 - **一从对多主(One Slave to Multiple Masters)**:这种...