为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
- 【TiDB 版本】:
3.0.4
- 【问题描述】:
给已经运行的tidb集群部署binlog集群,操作步骤:
1、编写tidb集群的inventory.ini文件,添加
[pump_servers]
pump1 ansible_host=172.21.48.214 deploy_dir=/chj/app/pump
pump2 ansible_host=172.21.48.215 deploy_dir=/chj/app/pump
pump3 ansible_host=172.21.48.216 deploy_dir=/chj/app/pump
并设置enable_binlog = True
2、部署
a、ansible-playbook deploy.yml --tags=pump -l 172.21.48.214,172.21.48.215,172.21.48.216
b、ansible-playbook deploy.yml --tags=pump -l 172.21.48.214,172.21.48.215,172.21.48.216,pump1,pump2,pump3
c、ansible-playbook deploy.yml --tags=pump -l 172.21.48.214,172.21.48.215,172.21.48.216,[pump1,pump2,pump3]
上面a、b、c三种方法都不行,报错无法创建目录,但是tidb这个用户是有root权限,tidb集群就是这个用户部署的
ansible.log (34.3 KB)
若提问为性能优化、故障排查类问题,请下载脚本运行。全选终端打印结果,并复制粘贴上传。
ansible-playbook deploy.yml --tags=pump -l pump1,pump2,pump3
这样执行正常吗
目前 deploy pump 的时候不会再次创建 deploy_dir 目录,目前可以手动创建
既然单独指定了deploy_dir目录,我觉得就应该创建,还让用户去手动创建,这个有点。。。,建议后面迭代可以加上这个自动创建目录
嗯呢,感谢,drainer也是这样的问题,帮忙一起反馈下
限制dump集群都部署好了。drainer也正常部署,但是启动失败,我drainer下游是mysql。
下图是我drainer的配置
我的需求是同步tidb的所有库到mysql里面
下面是drainer启动失败的日志,报错表不存在,也没有报具体哪个表不存在
我修改drainer.toml 加上
replicate-do-db = ["~^.",“saos_op”]
启动服务任务报上面的错误,无法启动
可以确认是英文的,这个双引号都不是我手动写的,是之前模板里面的我, 修改了里面的库名
replicate-do-db = ["~^*",“saos_op”]
这样可以吗
1、下游是rds
2、下游没有 saos_op.db_bill_main表,上游也没有,我都把库删了,等于tidb是一个新集群,我重新部署了dump集群,在部署drainer就正常了,在tidb里面建的库和表都同步到下游了
但是监控drainer没有数据,pump正常,部署完成也通过ansible-playbook rolling_update_monitor.yml --tags=prometheus更新了监控信息,并且我看prometheus的配置已经有了drainer的信息了,从prometheus里面看,比如binlog_drainer_pump_position这个指标都没有数据上报,这是哪里的问题呢
还有个问题,我有个drainer节点已经不需要,我手动上这个节点的机器上把进程kill掉,把相关目录删掉,我如何把pd里面的信息彻底删掉呢,状态为 paused 的这个节点我彻底不需要了,如何操作呢