如题,在tiup模式部署tidb集群时未考虑binlog,现有需求需要binlog模式同步下游mysql
因官方文档中binlog部署模式为ansible及Binary 方式,未有tiup集群模式,经过官方论坛讨论及实际操作,总结如下
默认部署使用的场景1,如果是3可以忽略该文章
一、环境准备
1、硬盘参数
按照官方文档说明,准备四台机器,其中/data硬盘有xfs及ext4,ext4按照官方说明修改硬盘参数
重启生效。xfs硬盘我未做任何操作
blkid
找到data分区对应的UUID
修改/etc/fstab
UUID= /data ext4 defaults,nodelalloc,noatime 0 2
重启服务器生效
2、服务器参数修改
四台服务器使用命令,若能找到如截图所示,则进行编辑注释掉,若无内容则忽视
cat /etc/sudoers | grep requiretty
若部署有问题,可以在四台服务器上分别操作
visudo
加入如下内容:
tidb ALL=(ALL) NOPASSWD: ALL
3、中控机到四台服务器root免密
中控机切换到tidb用户,设置免密操作
ssh-copy-id root@ip
二、部署tidb集群
中控机tidb用户目录下,创建scale-out.yaml脚本,并编辑输入内容,其中host输入自己服务器的IP地址,syncer输入相关mysql参数
global:
user: tidb
ssh_port: 22
deploy_dir: /data/tidb-deploy
data_dir: /data/tidb-data
drainer_servers:
- host: 1
ssh_port: 22
port: 18249
config:
syncer.db-type: "mysql"
syncer.to.host: "1"
syncer.to.user: ""
syncer.to.password: ""
syncer.to.port:
pump_servers:
- host: 10
ssh_port: 22
port: 18250
- host: 10
ssh_port: 22
port: 18250
- host: 10
ssh_port: 22
port: 18250
运行脚本
./.tiup/bin/tiup cluster scale-out <集群名称> scale-out.yaml --user root -i /home/tidb/.ssh/id_rsa
扩容集群成功有如下提示
编辑配置文件重新载入集群
./.tiup/bin/tiup cluster edit-config <集群名称>
修改binlog.enable的值为true
./.tiup/bin/tiup cluster reload <集群名称> -R tidb
查看集群状态:
./.tiup/bin/tiup cluster edit-config <集群名称>
pump和drainer已经部署成功
操作tidb看看是否同步数据到mysql