2.1.6升级到3.0.9的时候报错

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

请问这个怎么debug一下?

若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出的打印结果,请务必全选并复制粘贴上传。

看报错是一个 tikv 节点的配置文件里面有问题,建议看下是否有对配置文件做修改或者语法有问题,可以参考正常的文件对比下。

您说的tikv节点的配置文件是指的哪个文件呢?

我看了下ansbile,这个tikv.toml是在check的时候根据模板生成到/tmp/tidb_check_config文件里的,但是在check的时候直接报错"段错误"。 这个报错的tikv节点是重新加入的,现在正常运行

现在正常了吗?

还是在升级的时候报错,和上面截图一样的错误。

尝试着单独去执行./tikv-server --pd-endpoints pd:port --config ./tikv.toml --config-check 也还是报错"段错误"

这一步的逻辑是这样的:

  • name: Check TiKV config

    shell: cd {{ tidb_check_dir }} && ./tikv-server --pd-endpoints pd:port --config ./tikv.toml --config-check

涉及到目录和配置文件的,可以从这两个地方排查下。感觉是目录不存在或者权限问题,重点看下!

嗯,这个逻辑是知道的。看了上一步生成的文件/tmp/tidb_check_config/tikv-server和/tmp/tidb_check_config/tikv.toml 是存在的,且所属组和主都是tidb。但是还是报一样的错误。

帮忙确认 2 个问题:

1) 单独执行命令的报错信息是什么样的,辛苦贴一份

2)下载的版本跟需要升级的版本(3.0.9)是否一致( —V 确认下载的版本)

好的

单独执行./tikv-server --pd-endpoints pd:port --config ./tikv.toml --config-check返回"段错误" 请问下确认版本是直接执行./tikv-server -V 吗?

直接执行就可以

直接执行./tikv-server -V也是返回"段错误

我看ansible的task,/tmp/tidb_check_config/tikv-server文件是/home/tidb/tidb-ansible/resources/bin下copy过来的,两个执行-V 都是"段错误"。有没有可能是包的问题?

需要跟您说明下,这边是离线升级,参照离线部署的方式,在可联网的服务器下载好3.0.9版本的代码后执行了 ansible-playbook local_prepare.yml

然后将3.0.9版本的tidb-ansible传到无互联网的服务器,修改inventory.ini和hosts.ini后进行的升级操作ansible-playbook excessive_rolling_update.yml

帮忙看下:data 目录下的 last_tikv.toml 或者搜下 last_tikv.toml 文件权限,另外看一下tikv 的日志目录下的 tikv.log 和 tikv_stderr.log。

上面那个问题解决了,是包的问题。现在又有个问题

看了下是停不掉pd-server。看了ansible的逻辑,应该是在这步执行stop_pd.sh脚本,但是我在中控机上的/deploy/scripts/下没有看到stop_pd.sh这个脚本,是和没有这个脚本有关系吗?

我是离线升级的,咱们有离线升级的文档吗?

端口没起来,去对应 PD 节点下面看对应 log 信息,会给出具体原因。

这给的信息是"2379 is not down",是在停pdserver吧?我看那台PD的2379端口还是起着的。而且stop_pd.sh也有存在pd-server服务器。怎么能看下为啥ansible在执行stop的时候无法停掉pd-server?

我在pd-server上手动执行stop_pd.sh是没问题的,再执行start_pd.sh也没问题

感觉像是没有在pd-server上执行stop_pd.sh

升级的时候需要先停掉 server 然后在拉起,报错的信息要到对应的 PD 节点下面看 log 信息,根据这个排查就可以。

嗯,手动把两个pdserver停掉之后成功了

如果问题已经解决,麻烦将关键的回复设置为最佳解决方案。新问题麻烦提交新的 asktug 问题。