设为首页 加入收藏

TOP

pt-archiver归档数据 源库和目标库是否会出现不一致(三)
2019-09-30 16:46:46 】 浏览:82
Tags:pt-archiver 归档 数据 目标 是否 出现 一致
量删除之前,目标库insert 操作的commit(01:50:58.606390Z) 也是在源库delete 操作的commit(01:50:58.717251Z)之前
  • ***在目标库的commit执行后0.11s 期间,pt-archiver发生异常终止(这概率是很小的#_#), 源库的commit没有执行,delete操作就会回滚,出现源库的数据和目标库的数据不一致的问题***
  • 注意
    MySQL8.0 执行load data infile 命令除了设置secure_file_priv 外,还需要在[client] 和[mysqld] 中设置local-infile=1,不然会出现错误
    DBD::mysql::st execute failed: The used command is not allowed with this MySQL version

    pt-archiver commit

    • 操作的相关代码可见是在目标库完成commit 操作后,源库才进行commit操作的
    • 当事务中操作的数据量很大时,源库delete的commit操作耗时也会比较长,pt-archiver发生异常终止后(源库的commit还没完成,delete操作会回滚),会出现目标库已存在数据,源库还未删除数据不一致的情况
     7068       if ( $dst ) {
       7069          trace('commit', sub {
       7070             $dst->{dbh}->commit;
       7071          });
       7072       }
       7073       trace('commit', sub {
       7074          $src->{dbh}->commit;
       7075       });
       7076       $txn_cnt = 0;
       7077    }
       7078 }

    结论

    • 在pt-archiver归档非commit期间,pt-archiver异常终止,源库和目标库都会rollback,不会出现不一致情况
    • 在commit的时刻pt-archiver异常终止,可能出现不一致情况:目标库已经insert ,源库还没有delete的情况
    • pt-archiver异常终止后(没按时归档完,手动kill pt进程等),需手动校验目标库和源库的主键情况,否则再次归档会出现主键冲突的错误

    pt-archiver归档工具的使用详解

    pt-archiver
    pt-archiver数据归档

    首页 上一页 1 2 3 下一页 尾页 3/3/3
    】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
    上一篇MapReduce之Job提交流程源码和切.. 下一篇Hbase入门(三)——数据模型

    最新文章

    热门文章

    Hot 文章

    Python

    C 语言

    C++基础

    大数据基础

    linux编程基础

    C/C++面试题目