zoukankan      html  css  js  c++  java
  • pt工具校验主从数据一致性之dsns方式

    mysql主从数据一致性校验,常用的方法是Percona-Toolkit的组件pt-table-checksum,这东西怎么用网上一大堆,就不啰嗦了。主要说一下通过dsns方式发现从库的一种方式。

    pt工具连接到主库后,默认是是通过show processlist,通过主从复制线程获取从库的信息,进而连接从库的。默认方式连接从库是有他的局限性的,以下场景没法使用:

    场景:

      1.非标准端口3306,或主从端口不一致;

      2.多源复制搭建的主从;

      3.阿里云、腾讯云上的主从关系,无法直接获取从库的信息;

    通过dsns方式连接从库,只需要关注两点:

      1.dsns表;

      2.recursion-method参数项;

    先说dsns表,表结构如下:

    这个表可以建在任何服务器上,只要能被访问到就行,我习惯于将这样的工具放在总控服务器上,然后通过这台服务器管理所有mysql数据库。

    create database pt;
    CREATE TABLE `pt`.`dsns` ( `id` int(11) NOT NULL AUTO_INCREMENT, `parent_id` int(11) DEFAULT NULL, `dsn` varchar(255) NOT NULL, PRIMARY KEY (`id`) );

    +----+-----------+-----------------------------------------+
    | id | parent_id | dsn |
    +----+-----------+-----------------------------------------+
    | 1 | 1 | h=192.168.11.73,u=chen,p=asd.123,P=3307 |
    +----+-----------+-----------------------------------------+

    主要是dsn这个字段:里面是从库的连接信息,如果主从的用户登录一样,只写:h=192.168.11.73,P=3307就行了。
     
    再说recursion-method参数:
    --recursion-method "dsn=D=pt,t=dsns,h=192.168.11.92,u=op_dba,p=vqR9cGbEwKNuvy4Z"
    这个参数是dsns表所在服务器的连接信息,我的顺序分别是:库、表、服务器IP、用户、密码;当然如果dsns表在主服务器上,只写dsn=D=pt,t=dsns就行了。
     
    主要是这两个需要注意的,其他的网上一大堆,可以自己找。
    最后来一个完整的命令,这个命令我常用,但没包含所有项:

    pt-table-checksum --host='192.168.11.73' --user='check' --password='asd.123' --port=3306
    --create-replicate-table --databases="jxbbs" --tables="im_group_msg"
    --no-check-binlog-format --recursion-method "dsn=D=pt,t=dsns,h=192.168.11.92,u=op_dba,p=vqR9cGbEwKNuvy4Z"
    --recurse=1 --nocheck-replication-filters --replicate-check

     
     

  • 相关阅读:
    ti processor sdk linux am335x evm setup.sh hacking
    ti processor sdk linux am335x evm Makefile hacking
    导出Excel数据
    使用dom4j解析XML例子
    java解析xml文件并输出
    java解析xml文件
    java解析XML获取城市代码
    drop.delete.trauncat的区别
    hibernate 中id生成策略
    如何使java中double类型不以科学计数法表示
  • 原文地址:https://www.cnblogs.com/nandi001/p/11502278.html
Copyright © 2011-2022 走看看