(1)、pt-table-checksum 工具名称
(2)、安装pt-table-checksum
#:wget www.percona.com/downloads/percona-toolkit/2.2.2/percona-toolkit-2.2.2.tar.gz
#:tar -xvf percona-toolkit-2.2.2.tar.gz
#:perl Makefile.PL
# make && make install
(3)、授权
GRANT update,insert,delete,SELECT, PROCESS, SUPER, REPLICATION SLAVE ON *.* to 'tugeadmin'@'192.168.100.206' identified by 'peshome0716';
创建一个表
CREATE TABLE checksums (
db char(64) NOT NULL,
tbl char(64) NOT NULL,
chunk int NOT NULL,
chunk_time float NULL,
chunk_index varchar(200) NULL,
lower_boundary text NULL,
upper_boundary text NULL,
this_crc char(40) NOT NULL,
this_cnt int NOT NULL,
master_crc char(40) NULL,
master_cnt int NULL,
ts timestamp NOT NULL,
PRIMARY KEY (db, tbl, chunk),
INDEX ts_db_tbl (ts, db, tbl)
) ENGINE=InnoDB;
(4)、开始验证
pt-table-checksum --nocheck-replication-filters --databases=tuge --replicate=tuge.checksums --create-replicate-table -h192.168.100.206 --port 3306 -utugeadmin -ppeshome0716 --set-vars innodb_lock_wait_timeout=120 --no-check-binlog-format
(5)、验证说明
--nocheck-replication-filters :不检查复制过滤器,建议启用。后面可以用--databases来指定需要检查的数据库。
--no-check-binlog-format : 不检查复制的binlog模式,要是binlog模式是ROW,则会报错。
--replicate-check-only :只显示不同步的信息。
--replicate= :把checksum的信息写入到指定表中,建议直接写到被检查的数据库当中,(这里写入了tuge库的checksums) 如果没有checksums库.需要手工创建一个.每次监测完成之后干掉它.
这个库表可以随意指定.个人建议把它,放到test 里面去.在test里面建立一个checksums表. --replicate=test.checksums
--databases= :指定需要被检查的数据库,多个则用逗号隔开。
--tables= :指定需要被检查的表,多个用逗号隔开
h=127.0.0.1 :Master的地址
u=root :用户名
p=123456 :密码
P=3306 :端口
(6)、常见出错误
常见错误:
--set-vars innodb_lock_wait_timeout=120
使用timeout跳过这个错误提示.
(2)、安装pt-table-checksum
#:wget www.percona.com/downloads/percona-toolkit/2.2.2/percona-toolkit-2.2.2.tar.gz
#:tar -xvf percona-toolkit-2.2.2.tar.gz
#:perl Makefile.PL
# make && make install
(3)、授权
GRANT update,insert,delete,SELECT, PROCESS, SUPER, REPLICATION SLAVE ON *.* to 'tugeadmin'@'192.168.100.206' identified by 'peshome0716';
创建一个表
CREATE TABLE checksums (
db char(64) NOT NULL,
tbl char(64) NOT NULL,
chunk int NOT NULL,
chunk_time float NULL,
chunk_index varchar(200) NULL,
lower_boundary text NULL,
upper_boundary text NULL,
this_crc char(40) NOT NULL,
this_cnt int NOT NULL,
master_crc char(40) NULL,
master_cnt int NULL,
ts timestamp NOT NULL,
PRIMARY KEY (db, tbl, chunk),
INDEX ts_db_tbl (ts, db, tbl)
) ENGINE=InnoDB;
(4)、开始验证
pt-table-checksum --nocheck-replication-filters --databases=tuge --replicate=tuge.checksums --create-replicate-table -h192.168.100.206 --port 3306 -utugeadmin -ppeshome0716 --set-vars innodb_lock_wait_timeout=120 --no-check-binlog-format
(5)、验证说明
--nocheck-replication-filters :不检查复制过滤器,建议启用。后面可以用--databases来指定需要检查的数据库。
--no-check-binlog-format : 不检查复制的binlog模式,要是binlog模式是ROW,则会报错。
--replicate-check-only :只显示不同步的信息。
--replicate= :把checksum的信息写入到指定表中,建议直接写到被检查的数据库当中,(这里写入了tuge库的checksums) 如果没有checksums库.需要手工创建一个.每次监测完成之后干掉它.
这个库表可以随意指定.个人建议把它,放到test 里面去.在test里面建立一个checksums表. --replicate=test.checksums
--databases= :指定需要被检查的数据库,多个则用逗号隔开。
--tables= :指定需要被检查的表,多个用逗号隔开
h=127.0.0.1 :Master的地址
u=root :用户名
p=123456 :密码
P=3306 :端口
(6)、常见出错误
常见错误:
--set-vars innodb_lock_wait_timeout=120
使用timeout跳过这个错误提示.