• 部署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.查看集群状态

    [root@localhost tmp]#tiup cluster display mytidb_cluster

     

    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

     

    12.停掉drainers

    /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

    使用如下命令可以查看到node-id

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

    停掉以后可以使用如下命令启动(tiup cluster start xxxx -N drainer_id)

    tiup cluster start mytidb_cluster -N 192.168.1.118:8249

     

  • 相关阅读:
    常见图片格式PNG,JPEG,BMP,GIF区别总结
    sql在所有存储过程中查询包含某字符串的执行语句
    数字取整或保留小数四舍五入的正确写法
    SVG路径path的贝塞尔曲线指令
    查询总耗CPU最多与平均耗CPU最多的SQL语句
    MIME 参考手册
    SQL语句复制父子级表数据
    去掉数字格式结尾多余的零,补充数字格式结尾需要的零
    设置微信分享的标题 缩略图 连接 描述
    linux环境下php开启redis扩展(centos6.8)
  • 原文地址:https://www.cnblogs.com/hxlasky/p/16310015.html
Copyright © 2020-2023  润新知