Dump集群部署失败

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。

  • 【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

这样执行正常吗

还是不行,baoc报错一样


目前 deploy pump 的时候不会再次创建 deploy_dir 目录,目前可以手动创建

既然单独指定了deploy_dir目录,我觉得就应该创建,还让用户去手动创建,这个有点。。。,建议后面迭代可以加上这个自动创建目录

感谢反馈,这一块我跟研发反馈一下

嗯呢,感谢,drainer也是这样的问题,帮忙一起反馈下

嗯嗯好的

限制dump集群都部署好了。drainer也正常部署,但是启动失败,我drainer下游是mysql。
下图是我drainer的配置
我的需求是同步tidb的所有库到mysql里面

下面是drainer启动失败的日志,报错表不存在,也没有报具体哪个表不存在

我修改drainer.toml 加上 replicate-do-db = ["~^.",“saos_op”]

启动服务任务报上面的错误,无法启动

看起来,saos_op 的双引号不是英文的

可以确认是英文的,这个双引号都不是我手动写的,是之前模板里面的我, 修改了里面的库名

并且前面还有*.* 应该是匹配所有的库哈

能提供一下完整配置文件吗,可以将敏感信息调整一下

drainer.toml.bak (2.5 KB)

replicate-do-db = ["~^*",“saos_op”] 这样可以吗

还是不行

  1. 下游是同步到 RDS 吗
  2. 下游看下有 saos_op.db_bill_main 表吗,如果没有可能是:a)没有正常导全量 + 增量对应设置 init-commit-ts 增量同步。b) 没有全部 tidb 开启 binlog

麻烦确认一下这两点

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这个指标都没有数据上报,这是哪里的问题呢

image

还有个问题,我有个drainer节点已经不需要,我手动上这个节点的机器上把进程kill掉,把相关目录删掉,我如何把pd里面的信息彻底删掉呢,状态为 paused 的这个节点我彻底不需要了,如何操作呢