- 浏览: 950463 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (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 1245摘自http://blog.codinglabs.org/a ... -
MySQL的InnoDB索引原理详解
2016-03-29 11:18 660原文链接 http://www.codeceo.com/a ... -
sysbench压力测试
2015-10-20 10:58 27471.下载sysbench并安装 wget https:// ... -
mysql本地可以登录远程无法登录
2014-05-13 12:34 655mysql创建的用户本地可以登录,但是远程无法登录 原来是 ... -
mysql创建的用户本地无法登录
2014-05-13 12:33 527今天遇到一个诡异的问题,mysql创建的用户在本地无法登录, ... -
mysql的为什么?
2013-12-04 17:01 0什么是锁? 锁是怎么实现的? 高并发情况下锁对性能的影 ... -
mysqldump: Got error: 1449: The user specified as a definer
2013-03-07 15:20 1583备份数据库遇到如下的错误,我遇到了很多次,但是每次都忘记是怎么 ... -
mysql 5.1.34 主从复制部署手册
2013-01-28 09:21 1439******************************* ... -
mysql tps qps
2012-11-12 11:49 1245TPS - Transactions Per Second(每 ... -
mysql复合索引的使用场景
2011-11-22 15:54 23051、复合索引使用的目的是什么? :能形成索引覆盖,提高whe ... -
mysql 动态迁移架构(转)
2011-05-23 14:43 1556mysql 的架构已经讨论 ... -
mysql索引
2011-05-11 15:05 1070一、 MySQL: 索引以B树 ... -
mysql 分区功能介绍及实例
2011-04-01 18:54 1479一,什么是数据库分区 ... -
mysql 分表的三个方法
2011-04-01 18:51 1366一,先说一下为什么要 ... -
mysql 分区、分表的区别
2011-04-01 18:47 1838一,什么是mysql分表,分区 什么是分表,从表面意思上看呢 ... -
mysql临时表技巧
2011-01-25 11:23 908给定一个user表,包含id和uid两列,其中uid列可能有重 ... -
mysql查看数据库中表的大小、索引大小
2011-01-20 12:44 2494SELECT concat(round(table_ro ... -
mysql 存储过程
2010-12-13 14:09 1240最近在看运营系统的源码,里面用了很多存储过程来生成报表,mys ... -
mysql 从数据库slave 状态为no的解决方法
2010-12-07 10:27 1269从数据库的状态显示为如下 Slave_IO_Ru ... -
mysql数据导出到文件
2010-12-03 16:03 1278数据导出到文件,网上很多帖子都是乱写,郁闷一下,这么简单的东西 ...
相关推荐
自己在公司做的MySQL主从不一致检查与修复,希望对大家有帮助!
主要介绍了mysql 主从数据不一致,提示: Slave_SQL_Running: No 的解决方法,总结分析了MySQL主从数据不一致的原因与常见处理技巧,需要的朋友可以参考下
由于mysql主从复制是主数据库上面启动1个io线程,而从上面启动1个sql线程和1个io线程,当中任何一台机器的负载很高,忙不过来,导致其中的任何一个线程出现资源不足,都将出现主从不一致的情况。 1.3 max_allowed_...
MySQL主从一致性检查&修复攻略,这个DBA必看的,必须要会的
MySQL主从数据一致性怎么恢复,MySQL主从数据库的数据不一致,猜测备库在同步过程中出现了问题,现在的问题很明确,就是如何恢复主从库数据的一致性,下文为大家分享解决方法,感兴趣的小伙伴们可以参考一下
如何实现MySQL的主从复制和半同步复制对普通用户来说可能比较难懂,但只要您接触了MYSQL,就没理由不去学。
(1)首先,mysql主库在事务提交时会把数据库变更作为事件Events记录在二进制文件binlog中;mysql主库上的sys_binlog控制binlog日志刷新到磁盘。...通过逻辑复制,以此来达到数据一致。 Mysql通过3个线程来完成主从库
如:1062错误是指一些主键重复,1032错误是因为主从数据库数据不一致slave mysql容器配置配置Dockerfile设置server_id,一般设置为
MySQL主从能解决什么问题 一、高可用 因为数据都是相同的,所以当Master挂掉后,可以指定一台Slave充当Master继续保证服务运行,因为数据是一致性的(如果当插入Master挂掉,可能不一致,因为同步也需要...
2.主从数据库内数据保持一致 主数据库:121.199.27.227 /ubuntu 16.04 MySQL 5.7.21 ( 阿里云 ) 从数据库:182.254.149.39 /ubuntu 16.04 MySQL 5.7.21 ( 腾讯云 ) 防火墙配置 配置主服务器只允许特定 IP 访问...
在实际项目中,两台分布于异地的主机上安装有MYSQL数据库,两台服务器互为主备,客户要求当其中一台机器出现故障时,另外一台能够接管服务器上的应用,这就需要两台数据库的数据要实时保持一致,在这里使用MYSQL的...
------安装percona-toolkit工具包 tar zxf percona-toolkit-2.2.20.tar.gz cd percona-toolkit-2.2.20 perl Makefile.PL ----需要依赖yum install perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker ...
怎么安装mysql数据库,这里不说了,只说它的主从复制,步骤如下: 1、主从服务器分别作以下操作: 1.1、版本一致 1.2、初始化表,并在后台启动mysql 1.3、修改root的密码 2、修改主服务器master: ...
主从同步一、主从同步概述1.1、MySQL主从同步1.2、主从同步工作原理1.2.1、必要条件1.2.2、具体过程1.3、结构类型二、构建一主一从2.1、拓扑结构2.2、配置主服务器2.2.1、启用binlog日志2.2.2、授权用户2.2.3、查看...
使用MySQL+keepalived是一种非常好的解决方案,在MySQL-HA环境中,MySQL互为主从关系,这样就保证了两台 MySQL数据的一致性,然后用keepalived实现虚拟IP,通过keepalived自带的服务监控功能来实现MySQL故障时自动...
windows下配置mysql数据库主从的详细过程,具体内容如下 所用到工具: Mysql、Navicat Premium; 主库设置: 一.设置my.ini 文件; 1.在安装目录下找到my.ini 文件: 默认路径:C:\Program Files\MySQL\MySQL ...
比如A服务器做主服务器,B服务器做从服务器,在A服务器上进行数据的更新,通过 binlog 日志记录同步到B服务器上,并重新执行同步过来的 binlog 数据,从而达到两台服务器数据一致。 MySQL 数据库的主从复制方案,与...