mysql之mysqldbcompare实现多库数据对比

一、简介
     在使用mysql replication时,有时候会担心,如果主库和备库的数据不一致,怎么办?之前,自己用过一个非常笨的办法,就是,根据生产库的中的主键,从information_schema中,把生产库中的表和字段全部查出来,然后查询每个字段的数据,一一对比。这样的话,在数据量特别大的情况下,耗时简直恐怖。
     最近找到了一个mysql的工具,mysqldbcompare,可以实现对多库数据的对比。
     官方文档:http://dev.mysql.com/doc/mysql-utilities/1.3/en/mysqldbcompare.html
     工具下载地址:http://downloads.mysql.com/snapshots/pb/mysql-connector-utilities-fabric/mysql-utilities-1.4.0-labs-fabric.tar.gz
二、安装
     解压安装后,需要使用python命令进行安装
     cd  mysql-utilities-1.4.0-labs-fabric
     python setup.py install
     安装完成后,mysqldbcompare命令在/usr/local/bin下面。
三、mysqldb用法
     详细的参数解释,可以参照官方文档。这里只解释几个常用的参数
     --server1=user:passwprd@host    要对比的第一个库,指定用户、密码和主机。如果没有密码,密码可以忽略
     --server2=user:password@host    要对比的第二个库,指定用户、密码和主机。如果没有密码,密码可以忽略
     --difftype=[ unified| context| differ| sql] unified和context、 differ:会显示相差的具体的数据。sql:会生成的具体的SQL。具体信息,如下:
     fj.pngdifftype_sql.txt fj.pngdifftype_differ.txt fj.pngdifftype_unified.txt fj.pngdifftype_context.txt
     --changes-for=[server1|server2] 以difftype=sql为例,如果设置changes-for=server1,那么,生成的sql是update server1.tables set * * * *
     --run-all-test 检查所有,即使检测到第一个不一致的数据,仍然继续。
    绝大部分情况下,我们需要检查特定的几个库,这是可以指定命令,比如:
    mysqldbcompare --server1=root:root@127.0.0.1:3306 --server2=root:root@127.0.0.1:3307 --run-all-test --changes-for=server1 --difftype=sql test1:test2
    其中,test1库是server1上的库,test2是server2上的库。这样,我们就只检查test1和test2这两个库。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26418713/viewspace-1398195/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/26418713/viewspace-1398195/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值