[FAQ] TiFlash 同步进度问题排查

【问题澄清】

  • TiDB v4.0.0-rc.2、1 pd / 3 tikv / 1 tidb

  • 集群启动时 pd 自定义参数 max-replicas: 5。并开启 replication.enable-placement-rules: true,启用 TiFlash。

  • 执行 ALTER TABLE tpch50.lineitem SET TIFLASH REPLICA 1 创建 tpch50.lineitem 表在 tiflash 1 副本

【现象】

  • 通过 SELECT * FROM information_schema.tiflash_replica WHERE TABLE_SCHEMA = 'tpch50' and TABLE_NAME = 'lineitem'; 查看同步进度 PROGRESS0

image

【解决办法】

  • 通过 pd-ctl -u http://<pd-ip>:<pd-port> config placement-rules show 确认 group: default 中 count 参数值。

  • 通过以下 api 来修改 placement rules 的值 小于等于 集群 TiKV 节点数。

curl -X POST -d '{
    "group_id": "pd",
    "id": "default",
    "start_key": "",
    "end_key": "",
    "role": "voter",
    "count": 3,
    "location_labels": [
      "host"
    ]
  }' http://172.16.5.169:22379/pd/api/v1/config/rule

或者用文档中的方式,先写成 rules 文件,在使用 pd-ctl 导入:

https://pingcap.com/docs-cn/stable/configure-placement-rules/

【知识点引入】

  • 开启 Placement Rules 后,原先的 max-replicaslocation-labels 配置项将不再生效。如果需要调整副本策略,应当使用 Placement Rules 相关接口。
  • 集群初次启动之后,请通过 pd-ctl 修改 pd 参数。

【经典案例】

【相关 pr】