一般来说,如果 tiup 报错如上,你立即 display 一下,TiFlash 有可能不在 Up 状态的。这个时候确实可以继续等待 TiFlash 追赶进度。
可以通过 TiFlash 的 grafana 面板跟踪 TiFlash 的启动状态、以及同步进度。
从日志来看,TiFlash 在以下时刻发生了重启。也就是说 TiFlash 是被关掉的。
[2024/08/29 14:11:38.660 +08:00] [INFO] [lib.rs:55] [“Welcome To RaftStore Proxy”]
从 tiup 报错来看,TiFlash 在重启后,在 600s 内还不能够服务。这也不是重启失败所致,而是因为 TiFlash 在重启后需要追赶进度。例如,如果集群写入负载较大,或者重启前 TiFlash 就进度落后,或者 TiFlash 上 Region 很多,那么在重启后,TiFlash 会花费较长时间向 TiKV 追最新的数据,在这…
14:11 是 tiflash_tikv.log 最后的日志了么?如果是的话,tail 下另一个日志文件,它叫 tiflash.log 或者 server.log 之类的名字。
14.22 显示 failed to start。后续情况如何呢?比如现在是否在 Up 状态?
tiup cluster display 显示对应的 TiFlash 的状态是 Up,ps 也能看到这个 TiFlash 的进程还在?
TiKV leader 会定期发送一个消息催促 TiFlash 落盘数据,进而可以清理掉已经被 apply 的 raft log。这个过程称为 CompactLog。
CompactLog 可以被 TiFlash 拒绝。拒绝的原因通常是当前缓存的写入过小,此时刷盘浪费资源。
出现这样的日志是正常的,不意味着存在错误。
现在遇到的问题是 TiFlash 无法重启,和 CompactLog 没有直接的关系。建议提供具体的升级操作步骤用来诊断。
另外,可以提供一下关不掉的节点的 tiflash.log,看下是否有线程卡住了。
建议检查下下面的配置有没有全部配置完成
tiflash_servers:
- host:
config:
storage.s3.bucket:
storage.s3.root:
storage.s3.endpoint:
storage.s3.access_key_id:
storage.s3.secret_access_key:
learner_config:
dfs.prefix:
dfs.s3-endpoint:
dfs.s3-key-id:
df…
我的操作步骤是:
第一步:tiup cluster stop xxx ---停止其中一个写节点
此时所有的查询不可用
第二步:将表的两副本改为1副本
此时可以看到表TIKV_REGION_STATUS还是存在不可用副本
此时查询表,依然不可用
第三步:重启可用的写节点
此时查询不可用
第四步:启动第一步关闭的写节点
此时查询可用
想问问第一步和第二步大概发生在什么时候呀?
另外从日志上看到,有大量的错误显示和 aws 的连接不正常。显示 Access Denied 错误,感觉可能是权限啥的没配置好。
core 说明 tiflash panic 了。可以看下 tiflash_error.log 有没有堆栈
TiFlash 里面带了一个定制化的 tikv,即 TiFlash Proxy
Observer 可以简单理解为一个 hook,在 components/raftstore/src/coprocessor 里面可以看到。它和另一个做下推的 coprocessor 不一样,所以一般叫 observer。
请问一下能提供错误节点的 tiflash_tikv.log 日志么?
tiflash_tikv.log 是 tiflash proxy 的日志,tiflash 本体的日志大概叫 tiflash.log 或者 server.log,方便提供下么?
请问能提供下宕机时的 tiflash 的日志,或者宕机时的报错信息么?
请参考https://docs.pingcap.com/zh/tidb/v3.1/maintain-tiflash
AVAILABLE为1表示可用
AVAILABLE为0,但PROGRESS出于0-1之间,表示同步进度
目前同步进度的计算方式是只要有一个副本,则认为该Region是Ready的