美文网首页
mysql校验工具

mysql校验工具

作者: 猪肉楠 | 来源:发表于2017-02-27 14:12 被阅读0次

    1、主从数据库上安装pt-table-checksum工具:

    wget https://www.percona.com/downloads/percona-toolkit/2.2.17/RPM/percona-toolkit-2.2.17-1.noarch.rpm 
    rpm -ivh percona-toolkit-2.2.17-1.noarch.rpm #若存在依赖,可yum安装
    

    2、主从数据库分别进行授权:

    GRANT SELECT, PROCESS, SUPER, REPLICATION SLAVE,UPDATE,INSERT,DELETE ON ptcheck.* TO 'checksums'@'master_ip' IDENTIFIED BY 'check';
    

    3、主库上创建库ptcheck,写明对应需要校验的从库及连接信息:

    create database ptcheck;use ptcheck;
    CREATE TABLE `dsns` (`id` int(11) NOT NULL AUTO_INCREMENT,`parent_id` int(11) DEFAULT NULL,`dsn` varchar(255) NOT NULL,PRIMARY KEY (`id`) );
    INSERT INTO dsns (parent_id,dsn) values(1, "h=slave_ip,u=checksums,p=check,P=3306");
    

    4、创建校验结果存放表:

     CREATE TABLE `checksums` (
     `db` char(64) NOT NULL,
     `tbl` char(64) NOT NULL,
     `chunk` int(11) NOT NULL,
     `chunk_time` float DEFAULT NULL,
     `chunk_index` varchar(200) DEFAULT NULL,
     `lower_boundary` text,
     `upper_boundary` text,
     `this_crc` char(40) NOT NULL,
     `this_cnt` int(11) NOT NULL,
     `master_crc` char(40) DEFAULT NULL,
     `master_cnt` int(11) DEFAULT NULL,
     `ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
     PRIMARY KEY (`db`,`tbl`,`chunk`),
     KEY `ts_db_tbl` (`ts`,`db`,`tbl`)
     ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    

    5、开始主从数据校验(注意ptcheck库需要是主从能同步的库,且校验时主从数据库需要同步无延迟)

    pt-table-checksum h='master_ip',u='checksums',p='check',P=3306  --nocheck-replication-filters --replicate=ptcheck.checksums  --databases=voole_vrm --tables=vrm_cpmovieinfo  --no-check-binlog-format --recursion-method=dsn=D=ptcheck,t=dsns
    

    6、如果DIFFS显示非零,则主从数据不一致,可在从库上进行数据差异打印:

    pt-table-sync --replicate=ptcheck.checksums --databases=voole_vrm --sync-to-master  h='slave_ip',u='checksums',p='check' --charset=utf8 --print
    

    7、对于从库与主库不一致的数据,通过判断确认需要使从库和主库这些数据一致时,可在从库上执行如下命令恢复从库上差异数据,使主从数据实现一致(修复数据时请注意账号是否有修改权限):

    pt-table-sync --replicate=ptcheck.checksums --databases=voole_vrm --sync-to-master  h='slave_ip',u='checksums',p='check' --charset=utf8 --execute
    

    相关文章

      网友评论

          本文标题:mysql校验工具

          本文链接:https://www.haomeiwen.com/subject/aoezwttx.html