• 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
  • 相关阅读:
    选择排序
    冒泡排序
    博彦科技面试题笔试题
    智力面试题
    NET中Application,Session,Cookie,ViewState,Cache,Hidden 缓存机制 .
    asp.net/html清理页面缓存的方法
    设置easyui input默认值
    EasyUI分页索引不能输入非数字
    EasyUI Field
    Asp.Net实现无刷新文件上传并显示进度条(非服务器控件实现)(转)
  • 原文地址:https://www.cnblogs.com/dbcloud/p/6183694.html
Copyright © 2020-2023  润新知