HTAP 快速上手指南 测试实验中TiKV向TiFlash 表的同步长时间未完成,怎么排查问题

【 TiDB 使用环境】测试环境 playground
【 TiDB 版本】v7.0.0
【复现路径】做过哪些操作出现的问题
https://docs.pingcap.com/zh/tidb/stable/quick-start-with-htap
按此文档部署playground 测试HTAP发现

第 4 步:同步列存数据

TiFlash 部署完成后并不会自动同步 TiKV 数据,你可以在 MySQL 客户端向 TiDB 发送以下 DDL 命令指定需要同步到 TiFlash 的表。指定后,TiDB 将创建对应的 TiFlash 副本。

MySQL [test]> ALTER TABLE test.customer SET TIFLASH REPLICA 1;
Query OK, 0 rows affected (0.94 sec)

MySQL [test]> ALTER TABLE test.orders SET TIFLASH REPLICA 1;
Query OK, 0 rows affected (0.75 sec)

MySQL [test]> ALTER TABLE test.lineitem SET TIFLASH REPLICA 1;
Query OK, 0 rows affected (0.61 sec)

MySQL [test]> SELECT * FROM information_schema.tiflash_replica WHERE TABLE_SCHEMA = ‘test’ and TABLE_NAME = ‘customer’;
±-------------±-----------±---------±--------------±----------------±----------±---------+
| TABLE_SCHEMA | TABLE_NAME | TABLE_ID | REPLICA_COUNT | LOCATION_LABELS | AVAILABLE | PROGRESS |
±-------------±-----------±---------±--------------±----------------±----------±---------+
| test | customer | 98 | 1 | | 0 | 0 |
±-------------±-----------±---------±--------------±----------------±----------±---------+
1 row in set (0.12 sec)

MySQL [test]> SELECT * FROM information_schema.tiflash_replica WHERE TABLE_SCHEMA = ‘test’ and TABLE_NAME = ‘orders’;
±-------------±-----------±---------±--------------±----------------±----------±---------+
| TABLE_SCHEMA | TABLE_NAME | TABLE_ID | REPLICA_COUNT | LOCATION_LABELS | AVAILABLE | PROGRESS |
±-------------±-----------±---------±--------------±----------------±----------±---------+
| test | orders | 100 | 1 | | 0 | 0 |
±-------------±-----------±---------±--------------±----------------±----------±---------+
1 row in set (0.02 sec)

MySQL [test]> SELECT * FROM information_schema.tiflash_replica WHERE TABLE_SCHEMA = ‘test’ and TABLE_NAME = ‘lineitem’;
±-------------±-----------±---------±--------------±----------------±----------±---------+
| TABLE_SCHEMA | TABLE_NAME | TABLE_ID | REPLICA_COUNT | LOCATION_LABELS | AVAILABLE | PROGRESS |
±-------------±-----------±---------±--------------±----------------±----------±---------+
| test | lineitem | 102 | 1 | | 0 | 0 |
±-------------±-----------±---------±--------------±----------------±----------±---------+
1 row in set (0.03 sec)

【遇到的问题:问题现象及影响】
等了一个小时,发现进度PROGRESS始终是0 ,执行explain analyze也没看到预期效果

请问如何排查此问题?

选择以下任意一种方式部署 TiDB 数据库:

你选择了哪种部署方式,
https://docs.pingcap.com/zh/tidb/v7.0/quick-start-with-tidb

查看下部署指南,看下是不是有些部署的工作没有做好引起的~

playground在测试期间没有关闭,也没发现报错。
就是单机macOS上装的Centos 7.6

在当前 session 执行以下命令启动集群。

  • 直接执行 tiup playground 命令会运行最新版本的 TiDB 集群,其中 TiDB、TiKV、PD 和 TiFlash 实例各 1 个:
tiup playground

再多等点时间就可以了。

你是测试过了吗? 我还等着测试其他内容,所以后来就关掉了。
我想问下,如果执行命令ALTER TABLE test.lineitem SET TIFLASH REPLICA 1; 是不是后台转换成job了? 在哪里能查到这个job的信息?

可能是我的机器和v7.0.0不兼容,最终重新安装v6.5.2 后终于见识了HTAP的优点,原来语句执行时间为3.6秒,换成tiflash执行计划后,变成0.3秒。

估计不是时间问题,是版本兼容性的问题,我换了个v6.5版本,时间就是几分钟的事情,而且一开始查询就能看到一张表的进度已经是1了

自己搜索了一下,通过ADMIN SHOW DDL 可以查看正在执行的job。不过我的已经执行完了,所以只能查看历史了

顺便粘贴一些内容
ADMIN SHOW DDL;
这个可以查看ddl状态,

查看当前 schema version,owner 信息以及正在执行的 DDL 任务。
查看当前未执行完成的 DDL 任务(包括正在运行的 DDL 任务和等待运行的任务)以及最近 NUM 条(默认 10 )已经执行完成的 DDL 任务。 ADMIN SHOW DDL JOBS [NUM] [WHERE where_condition];

#例如,显示当前未完成的 DDL 任务,以及最近 5 条已经执行完成的 DDL 任务。
MySQL> ADMIN SHOW DDL JOBS 5;

#例如,显示 test 数据库中未执行完成的 DDL 任务,以及最近 5 条已经执行完成但执行失败的 DDL 任务。
MySQL> ADMIN SHOW DDL JOBS 5 WHERE state!=‘synced’ AND db_name=‘test’;

#根据 JOB_ID 查询具体的 DDL 语句。
MySQL> ADMIN SHOW DDL JOB QUERIES job_id [, job_id]…;

#取消正在执行中的 DDL 任务。
MySQL> ADMIN CANCEL DDL JOBS job_id [, job_id]…;

#通过 JOB_ID 恢复表,等价于:RECOVER TABLE table_name。
MySQL> RECOVER TABLE BY JOB ddl_job_id;

此话题已在最后回复的 60 天后被自动关闭。不再允许新回复。