天天看點

Maatkit--Mysql的進階管理工具mk-table-checksum

mk-table-checksum檢查主從表是否一緻及有效的工具

<a href="http://tech.it168.com/a2011/0808/1229/000001229492_4.shtml">具體介紹:http://tech.it168.com/a2011/0808/1229/000001229492_4.shtml</a>

下面介紹安裝和使用:

安裝過程

[root@vm02]# mk-table-checksum h=localhost,u=root,p=123456 h=192.168.8.22,u=admin,p=123456 -d test -t t1

Cannot connect to MySQL because the Perl DBI module is not installed or not found.  Run 'perl -MDBI' to see the directories that Perl searches for DBI.  If DBI is not installed, try:

  Debian/Ubuntu  apt-get install libdbi-perl

  RHEL/CentOS    yum install perl-DBI

  OpenSolaris    pgk install pkg:/SUNWpmdbi

[root@vm02]#

提示缺少perl-DBI子產品,那麼直接 yum install perl-DBI。

主庫master:192.168.8.23

從庫slave:  192.168.8.22

我們在主庫上運作:

[root@vm02 ~]# mk-table-checksum h=localhost,u=root,p=123456 h=192.168.8.22,u=admin,p=123456 -d test

DATABASE TABLE     CHUNK HOST         ENGINE      COUNT         CHECKSUM TIME WAIT STAT  LAG

test     heartbeat     0 localhost    MyISAM       NULL       3775992158    0    0 NULL NULL

test     heartbeat     0 192.168.8.22 MyISAM       NULL       4070270504    0    0 NULL NULL

test     t1            0 localhost    InnoDB       NULL       1245381782    0    0 NULL NULL

test     t1            0 192.168.8.22 InnoDB       NULL       1906296014    0    0 NULL NULL

test     t2            0 localhost    InnoDB       NULL        251493421    0    0 NULL NULL

test     t2            0 192.168.8.22 InnoDB       NULL        251493421    0    0 NULL NULL

[root@vm02 ~]# 

如果表不一緻,CHECKSUM的值是不相等的。

解釋下輸出的意思:

DATABASE:資料庫名

TABLE:表名

CHUNK:checksum時的近似數值

HOST:MYSQL的位址

ENGINE:表引擎

COUNT:表的行數

CHECKSUM:校驗值

TIME:所用時間

WAIT:等待時間

STAT:MASTER_POS_WAIT()傳回值

LAG:slave的延時時間

如果你想過濾出不相等的都有哪些表,可以用mk-checksum-filter這個工具。

隻要在後面加個管道符就行了。

[root@vm02 ~]# mk-table-checksum h=localhost,u=root,p=123456 h=192.168.8.22,u=admin,p=123456 -d test | mk-checksum-filter

test     heartbeat     0 192.168.8.22 MyISAM       NULL       1566188174    0    0 NULL NULL

test     heartbeat     0 localhost    MyISAM       NULL       1271909828    0    0 NULL NULL

知道有哪些表不一緻,那麼我們就可以處理了。

可以用mk-table-sync這個工具來處理。

注:在執行mk-table-checksum時會鎖表,表的大小取決于執行的快慢。

本文轉自 liang3391 51CTO部落格,原文連結:http://blog.51cto.com/liang3391/735498