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
  • 相关阅读:
    leetcode--Populating Next Right Pointers in Each Node II
    leetcode—Populating Next Right Pointers in Each Node
    Pascal's Triangle II
    leetcode—pascal triangle
    leetcode—triangle
    October 23rd, 2017 Week 43rd Monday
    October 22nd, 2017 Week 43rd Sunday
    October 21st 2017 Week 42nd Saturday
    October 20th 2017 Week 42nd Friday
    October 19th 2017 Week 42nd Thursday
  • 原文地址:https://www.cnblogs.com/dbcloud/p/6183694.html
Copyright © 2011-2022 走看看