工具一 mk-table-checksum

–algorithm
对比算法选项,可选择CHECKSUM、BIT_XOR、ACCUM三种,性能依次下降,对于算法使用的注意事项请点击这里

–arg-table
Checksum的参考表,其中有每个列都对于mk-table-checksum的命令行选项,一般来我们可以使用默认值,create-replicate-table自动创建checksum表

–check-interval
如果—check-slave-lag被指定,则指定多久进行一次检查slave lag

–check-replication-filters
如果replication中设置了某些过滤条件,那么就不能使用—replicate选项。

–check-slave-lag
如果slave lag大于—max-lag则会暂停checksum,如果该选项被指定并且—throttle-method被设置为slavelog,那么throttle-method只会check slave

–chunk-column
用于将表切分的参考列。默认使用第一个比较适合的列,主键等,最好是选择索引列,chunk-index会定义使用哪个索引

–chunk-index
用于切分表的参考索引

–chunk-range
选项值:open、openclosed。切分块的范围类型是open:id>=20;openclosed:id>=20 AND id<=N,N值是mk-table-checksum第一次chunk rows的时候计算的MAX(id)

–chunk-size
每次checksum的行数或者数据块大小

–columns (–ignore-columns)
以逗号分隔的列名,只checksum这些列

–config
以逗号分隔的config文件名

–create-replicate-table
在–replicate的状态下,如果checksum表(保存对比信息,可自己更改名称)不存在,则自动创建

–databases (–ignore-databases)
以逗号分隔的数据库名,仅仅checksum这些库

–databases-regex (–ignore-databases-regex)
以Perl正则表示的库名,仅仅checksum这些库

–defaults-file
从该文件中读取mysql options,必须使用绝对路径

–empty-replicate-table
删除checksum表(保存对比信息,可自己更改名称)所有记录

–engines (–ignore-engines)
仅checksum以逗号分隔的存储引擎

–explain
只输出checksum的语句,不执行

–explain-host
输出mk-table-checksum连接的主机信息

–function
对应—algorithm,每个算法都对应几种函数。FNV1A_64, MURMUR_HASH, SHA1, MD5, CRC32, etc

–lock
Slave端还未执行完reply log中的事件时就锁住master端的表,可以使用—replicate替代,防止出现锁、等待的情况

–max-lag
这个选项表示slave lag的最大值,如果在超过这个值,就会等待check-interval时间,直到SLAVE与MASTER 同步

–modulo\–offset
这个选项使得仅仅checksum表中的某些块能够被比较,通过offset可以使用表达式,表示第几个块可以满足比较条件。比如chunk_num % –modulo==–offset,

–optimize-xor
优化BIX_XOR算法,

–probability
扫描记录的%比,如果小于<100,则表示部分记录会被跳过checksum

–quiet
不输出checksum的结果

–recheck
Recheck那些在—replicate-check得到不同的块

–recurse
当查找的SLAVE时候,通过该参数确定递归几层

–recursion-method
查找SLAVE的方法

–replicate
检查主从一致性,确定master端之后自动寻找SLAVE,反之,如此。该选项能实现无锁checksum。不需要在每个MASTERslave都运行,只需在MASTEr执行即可。

–replicate-check
通过checksum表,找到不同记录的表

–replicate-database
避免在replication使用了过滤某些选项。

–resume
将之前包含输出结果的文件打印到标准输出

–save-since,–since
当—arg-table和—since都在命令选项时,会在checksum表中增加一列,用来保存执行对比的时间。如果设置–since的值,Mk-table-checksum只会对比在这个时间之后的数据

–schema
对比的不是data而是table structe.

–separator
在使用—algorithm的时候,需要用到连接每个字段的值,用于得到一个16进制的串

–set-vars
可以设置session级别的VARIABLES

–single-chunk
如果只有一个块,那将跳过—probability,表示不管如何都要进行checksum

–slave-lag
返回replication中各个slave的延迟秒数

–sleep
间隔秒数。隔几秒对比一次表,如果—chunk-size被指定,则隔几秒对比一个块

以上内容仅仅为一部分常用的参数,当然我们最经常的user,password,port这些选项想必大家都知道如何使用,这里就不再累赘,筒子们赶紧实验起来,如有出错还望纠正