zoukankan      html  css  js  c++  java
  • mysql数据一致性检查及修复

    percona-toolkit-2.2.20-1.noarch
    mysql 5.6.29-log
    master:192.168.166.129
    slave:192.168.166.131

    一、创建数据库校验存放库

    CREATE DATABASE IF NOT EXISTS percona CHARACTER SET utf8;
    

    二、建立数据校验用户

    GRANT SELECT, PROCESS, SUPER, REPLICATION SLAVE ON *.* TO 'checksums'@'192.168.166.129' IDENTIFIED BY 'checksums';
    GRANT ALL ON percona.* TO 'checksums'@'192.168.166.129';
    

    三、建立dsn信息存放表,解决从库端口为非3306的问题,如果是多个slave添加多条记录即可

    use percona;
    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=192.168.166.131,P=3306"); 
    

    四、数据一致性校验检查

    pt-table-checksum h='192.168.166.129',u='checksums',p='checksums',P=3306 --nocheck-replication-filters --replicate=percona.checksums --recursion-method=dsn=D=percona,t=dsns --no-check-binlog-format
    --replicate #把checksum的信息写入到指定表中
    --nocheck-replication-filters #不检查复制过滤器,建议启用
    --no-check-binlog-format #只支持statment格式,不检查binlog格式,忽略二进制格式检查
    --recursion-method #检查从库的方法,默认是processlist,如果端口为非3306,会无法连接从库,推荐使用dsn方法

    五、查看不一致数据

    pt-table-checksum h='192.168.166.129',u='checksums',p='checksums',P=3306 --nocheck-replication-filters --replicate=percona.checksums --recursion-method=dsn=D=percona,t=dsns  --no-check-binlog-format --replicate-check-only
    -- 或者在从库执行下面语句,获取不一致数据结果
    select * from percona.checksums where master_cnt <> this_cnt OR master_crc <> this_crc OR ISNULL(master_crc) <> ISNULL(this_crc)

    6、修复不一致数据

    pt-table-sync --execute --replicate percona.checksums --sync-to-master h=192.168.166.131,P=3306,u=root,p=xxxxxx

    修复数据,需要有update权限,我这里使用root用户,这里的主机为需要修复的从机

    7、如果修复了不一致数据,需要再次校验,对比是否已修复

    pt-table-checksum h='192.168.166.129',u='checksums',p='checksums',P=3306 --nocheck-replication-filters --replicate=percona.checksums --recursion-method=dsn=D=percona,t=dsns  --no-check-binlog-format
    pt-table-checksum h='192.168.166.129',u='checksums',p='checksums',P=3306 --nocheck-replication-filters --replicate=percona.checksums --recursion-method=dsn=D=percona,t=dsns  --no-check-binlog-format --replicate-check-only
  • 相关阅读:
    Comparator
    Compare接口
    Predicate接口和Consumer接口
    Lambda表达式遍历集合
    Lambda表达式入门
    RansomNote
    FirstUniqueCharacterInString
    String All Methods
    形参个数可变的方法(...)
    springBoot excel导出 下载 超简单
  • 原文地址:https://www.cnblogs.com/dbcloud/p/6183694.html
Copyright © 2011-2022 走看看