• 部署tidb同步到mysql(drainer)


    参考例子:
    环境:
    TIDB:V6.0.0
    Mysql:5.7
    OS:Centos 7

    192.168.1.118 pd,tidb,tikv,tiflash,monitoring,grafana,alertmanager,pump,drainer
    192.168.1.85 pd,tidb,tikv,tiflash,pump
    192.168.1.134 pd,tidb,tikv,pump

     

    1.在mysq数据库中,添加同步用户
    grant all on *.* to 'tidb_sync'@'%' identified by 'mysql';

     

    2.编写scale-out-binlog.yaml文件
    我这里已经部署了pump_servers,下面的pump_servers需要去掉,没有kafka的也也需要注释掉
    vi /tmp/scale-drainer.yaml

    #pump_servers:
    #  - host: 192.168.40.160
    #    config:
    #      gc: 7
    #      storage.stop-write-at-available-space: 200MB
    drainer_servers:
      - host: 192.168.1.118
            ssh_port: 22
        port: 8249
        deploy_dir: "/tidb-deploy/drainer-8249"
        data_dir: "/tidb-data/drainer-8249"
        config:
          syncer.db-type: "mysql"
          syncer.to.host: "192.168.1.134"
          syncer.to.user: "tidb_sync"
          syncer.to.password: "mysql"
          syncer.to.port: 13306
        #kafka配置
          #syncer.db-type: "kafka"
          #syncer.to.kafka-addrs: "127.0.0.1:9092"
          #syncer.to.kafka-version: "0.8.2.0"

     

    3.开始扩容
    [root@localhost tmp]#tiup cluster scale-out mytidb_cluster /tmp/scale-drainer.yaml

     

    4.查看集群状态
    [root@localhost tmp]#tiup cluster display mytidb_cluster

     

    5.开启binlog

    [root@localhost tmp]#tiup cluster edit-config mytidb_cluster
    server_configs:
      tidb:
        binlog.enable: true
        binlog.ignore-error: true

     

    6.重新加载配置(集群会重启动)
    [root@localhost tmp]#tiup cluster reload mytidb_cluster

     

    7.查看集群状态

     

    8.验证
    登陆一个tidb查看

    [root@localhost ~]# /opt/mysql5727/bin/mysql -h 192.168.1.134 -P4000 -uroot -p
    mysql> show variables like "log_bin";
    +---------------+-------+
    | Variable_name | Value |
    +---------------+-------+
    | log_bin       | ON    |
    +---------------+-------+
    1 row in set (0.04 sec)
    
    mysql> show pump status;
    +--------------------+--------------------+--------+--------------------+---------------------+
    | NodeID             | Address            | State  | Max_Commit_Ts      | Update_Time         |
    +--------------------+--------------------+--------+--------------------+---------------------+
    | 192.168.1.118:8250 | 192.168.1.118:8250 | online | 433469605565702466 | 2022-05-26 16:57:47 |
    | 192.168.1.134:8250 | 192.168.1.134:8250 | online | 433469605565702483 | 2022-05-26 16:57:46 |
    | 192.168.1.85:8250  | 192.168.1.85:8250  | online | 433469605565702510 | 2022-05-26 16:57:47 |
    +--------------------+--------------------+--------+--------------------+---------------------+
    3 rows in set (0.44 sec)
    
    mysql> show drainer status;
    +--------------------+--------------------+--------+--------------------+---------------------+
    | NodeID             | Address            | State  | Max_Commit_Ts      | Update_Time         |
    +--------------------+--------------------+--------+--------------------+---------------------+
    | 192.168.1.118:8249 | 192.168.1.118:8249 | online | 433469605224644609 | 2022-05-26 16:57:49 |
    +--------------------+--------------------+--------+--------------------+---------------------+
    1 row in set (0.00 sec)

     

    9.数据同步验证
    登陆tidb建库,建表写入数据
    [root@localhost ~]# /opt/mysql5727/bin/mysql -h 192.168.1.134 -P4000 -uroot -p
    mysql> create database db_tidb_sync;
    mysql> create table tb_sync_test(id int,name varchar(20));
    Query OK, 0 rows affected (0.63 sec)

    mysql> insert into tb_sync_test values(1,'name1');
    Query OK, 1 row affected (0.36 sec)

    mysql> insert into tb_sync_test values(2,'name2');
    Query OK, 1 row affected (0.05 sec)

    mysql> insert into tb_sync_test values(3,'name3');
    Query OK, 1 row affected (0.02 sec)

    mysql> select * from tb_sync_test;
    +------+-------+
    | id | name |
    +------+-------+
    | 1 | name1 |
    | 2 | name2 |
    | 3 | name3 |
    +------+-------+
    3 rows in set (0.01 sec)


    10.登陆mysql查看
    [root@localhost data]# /opt/mysql5727/bin/mysql -h localhost -uroot -pmysql -S /opt/mysql5727/mysql.sock
    mysql> show databases;
    +--------------------+
    | Database |
    +--------------------+
    | db_tidb_sync |
    | tidb_binlog |
    +--------------------+
    10 rows in set (0.00 sec)

    mysql> show tables;
    +------------------------+
    | Tables_in_db_tidb_sync |
    +------------------------+
    | tb_sync_test |
    +------------------------+
    1 row in set (0.00 sec)

    mysql> select * from tb_sync_test;
    +------+-------+
    | id | name |
    +------+-------+
    | 1 | name1 |
    | 2 | name2 |
    | 3 | name3 |
    +------+-------+
    3 rows in set (0.00 sec)

    看到数据同步过来了.


    11.binlogctl工具使用
    查看 pump 节点的状态
    /root/.tiup/components/ctl/v6.0.0/binlogctl -pd-urls=http://192.168.1.118:2379 -cmd pumps

    查看drainer节点的状态
    /root/.tiup/components/ctl/v6.0.0/binlogctl -pd-urls=http://192.168.1.118:2379 -cmd drainers


    暂停 drainer 节点
    ./binlogctl -pd-urls=http://192.168.40.160:2379 -cmd pause-drainer -node-id


    /root/.tiup/components/ctl/v6.0.0/binlogctl -pd-urls=http://192.168.1.118:2379 -cmd pause-drainer -node-id 192.168.1.118:8249

    查看drainers

    tiup ctl:v6.0.0 binlog -pd-urls=http://192.168.1.118:2379 -cmd drainers

    /root/.tiup/components/ctl/v6.0.0/binlogctl -pd-urls=http://192.168.1.118:2379 -cmd drainers -node-id 192.168.1.118:8249

    pause-drainer以后进程就没啦,直接用tiup把这个服务拉起来就好啦
    tiup cluster start mytidb_cluster -N 192.168.1.118:8249

     

  • 相关阅读:
    ArrayList.sort & Collections.sort
    preliminary->advanced exam coding part
    Spring JDBC的使用
    Spring之面向切面编程(AOP)
    Spring静态代理与动态代理
    Spring之JDBC的连接与注解的使用
    Spring入门之Bean的实例化方式
    Mybatis入门(二)
    Mybatis入门(一)
    正则表达式——转载
  • 原文地址:https://www.cnblogs.com/hxlasky/p/16336477.html
Copyright © 2020-2023  润新知