• ADADADADAD

    pt-table-checksum工具应用[ mysql数据库 ]

    mysql数据库 时间:2024-12-03 12:12:08

    作者:文/会员上传

    简介:

    1.认真看错误提示,弄不清楚状况的时候打开debugPTDEBUG=1
    2.10.10.10.10为主,其它ip为从
    3.h=10.10.10.10,u=checksums,p=checksums 中间一定不能有空格,不然会报错,本人排

    以下为本文的正文内容,内容仅供参考!本站为公益性网站,复制本文以及下载DOC文档全部免费。


    1.认真看错误提示,弄不清楚状况的时候打开debugPTDEBUG=1
    2.10.10.10.10为主,其它ip为从
    3.h=10.10.10.10,u=checksums,p=checksums 中间一定不能有空格,不然会报错,本人排查这个错误花了很长时间

    一:sakila库的film_actor表的数据检测与同步
    1,在主库和从库上面添加用户:
    GRANT SELECT, PROCESS, SUPER, REPLICATION SLAVE ON *.* TO 'checksums'@'10.10.10.10' IDENTIFIED BY 'checksums';

    2.检测sakila库的film_actor表的数据主从是否一致
    PTDEBUG=1 pt-table-checksum --no-check-binlog-format --no-check-replication-filters --recursion-method=processlist --replicate=test.checksums --databases=sakila --tables=film_actor -h 10.10.10.10 -P8888 -u checksums -p checksums

    3,根据checksum的结果恢复所有从库的film_actor数据
    PTDEBUG=1 pt-table-sync --replicate=test.checksums --recursion-method=processlist --database=sakila --tables=film_actor h=10.10.10.10,P=8888,u=checksums,p=checksums --print --execute


    ------------------------------------------------------------------------------------------------------------------------------
    二:检测tmp库数据是否一致
    pt-table-checksum --no-check-binlog-format --no-check-replication-filters --recursion-method=processlist --replicate=test.checksums --databases=tmp -h 10.10.10.10 -P8888 -u checksums -p checksums

    1,根据checksum的结果恢复所有从库的数据
    PTDEBUG=1 pt-table-sync --replicate=test.checksums --recursion-method=processlist --no-check-triggers --no-check-child-tables --no-foreign-key-checks h=10.10.10.10,P=8888,u=checksums,p=checksums --print --execute
    (有外键约束要加参数 --no-check-child-tables --no-foreign-key-checks,不然可能把子表所有的数据都删除掉)
    (--no-check-triggers,不检测触发器)
    2,根据checksum的结果只恢复10.10.10.11的数据
    pt-table-sync --print --execute --replicate=test.checksums --sync-to-master h=10.10.10.11,P=8888,u=checksums,p=checksums


    3,恢复从库192.168.6.91的数据(这个从库所有的数据都和主保持一致,除了系统表和checksums表)
    pt-table-sync --execute --print --sync-to-master h=192.168.6.91,P=8888,u=checksums,p=checksums

    ----------------------------------------------------------------------------------------------------------------------------
    执行完pt-table-sync后可再执行一次pt-table-checksum检测主从数据是否一致,可以执行下面的sql语句,如果结果为空则说明主从数据一致
    select * from test.checksums where master_cnt <>this_cnt OR master_crc<>this_crc OR ISNULL(master_crc)<>ISNULL(this_crc);

    http://blog.itpub.net/28939273/viewspace-1993010/


    pt-table-checksum工具应用.docx

    将本文的Word文档下载到电脑

    推荐度:

    下载