升级到4.0之后,Dashboard的Statement不显示。

如题:

是不是哪里没有配置上?

您好:

     1. 请问其他集群信息,热点可视化等能否正常展示?
     2. 能否换一个pd的连接ip端口试试
  1. 热点可视化没有问题。
  2. 换了一个pd的IP也不行。

好的,我们找下原因,稍后答复,多谢

你好,对于升级上来的集群 Statement 功能默认没有打开,可以参阅这篇文档打开 Statement 功能:
https://pingcap.com/docs-cn/stable/reference/performance/statement-summary/#参数配置

打开后的数据会显示在该功能图中。

昨天已经执行了 ``` set global tidb_enable_stmt_summary = true;

现在是查询表的时候提示有错误。

您好:

     1. 请问是Tiup部署的4.0rc版本吗? 方便执行tiup命令获取下拓扑信息吗?
          类似: tiup tiops display -c ryl_cluster --status
     2.  请问部署了TiFlash吗?
     3. 使用的tiup cluster吗?
  1. 是rc版本,现在还没有部署TiFlash。 升级过程中卡主了一下,然后转到了tiup,tiup提示已经升级了,最后又用ansible升级的。

在3.0版本的时候, 使用ansible升级到4.0卡住了? 之后使用tiup升级到4.0成功? 为什么又换回ansible了? 另外这个报错的参数,有手工修改过吗? tidb_isolation_read_engines

因为中间只升级了部分机器,剩下的机器tiup不执行升级。所以切换回了ansible。报错的参数没有修改过。

  1. 请帮忙反馈下ansible中控机,部署目录/conf/tidb.yml文件
  2. 请帮忙反馈tiup 部署目录 /home/tidb/.tiup/storage/cluster/clusters/集群名称/config/下的tidb.toml 可能带时间等文件反馈下,多谢
  3. 查下 select * from information_schema.CLUSTER_CONFIG where type=‘tidb’ and key like ‘%isolation-read.engines%’;
  4. 查下 select @@tidb_isolation_read_engines;

你好,能详细描述一下具体过程吗?目前根据你的描述不能很好的理解你具体如何操作的

select @@tidb_isolation_read_engines 看看结果呢,推测是没有 “tidb” 这个 engine 导致的。要读 performance_schema.cluster_events_statements_summary_by_digest 这个表,需要至少把 tidb 加进去。也就是执行这个操作:

set @@tidb_isolation_read_engines = "tidb, tikv, tiflash

文件传给你吗?

这是我这里的复现步骤:

TiDB(root@127.0.0.1:test) > select @@tidb_isolation_read_engines;
+-------------------------------+
| @@tidb_isolation_read_engines |
+-------------------------------+
| tikv, tiflash, tidb           |
+-------------------------------+
1 row in set (0.00 sec)

TiDB(root@127.0.0.1:test) > select digest, query_sample_text, exec_count from performance_schema.cluster_events_statements_summary_by_digest limit 1;
+------------------------------------------------------------------+--------------------------------------+------------+
| digest                                                           | query_sample_text                    | exec_count |
+------------------------------------------------------------------+--------------------------------------+------------+
| c6af9e97afb4afb48742e08ae0f5655c7eddc6bea5bcd3a5d1253aa7d87ea630 | select @@tidb_isolation_read_engines |          1 |
+------------------------------------------------------------------+--------------------------------------+------------+
1 row in set (0.00 sec)

TiDB(root@127.0.0.1:test) > set @@tidb_isolation_read_engines = "tikv, tiflash";
Query OK, 0 rows affected (0.00 sec)

TiDB(root@127.0.0.1:test) > select digest, query_sample_text, exec_count from performance_schema.cluster_events_statements_summary_by_digest limit 1;
ERROR 1815 (HY000): Internal : Can not find access path matching 'tidb_isolation_read_engines'(value: 'tikv,tiflash'). Available values are 'tidb'.

版本也是 tidb 4.0 rc:

TiDB(root@127.0.0.1:test) > select tidb_version()\G
*************************** 1. row ***************************
tidb_version(): Release Version: v4.0.0-rc
Git Commit Hash: 79db9e30ab8f98ac07c8ae55c66dfecc24b43d56
Git Branch: HEAD
UTC Build Time: 2020-04-16 03:29:33
GoVersion: go1.13.10
Race Enabled: false
TiKV Min Version: v3.0.0-60965b006877ca7234adaced7890d7b029ed1306
Check Table Before Drop: false
1 row in set (0.00 sec)

重新把 tidb_isolation_read_engines 的值加上 “tidb” 就好了:

TiDB(root@127.0.0.1:test) > set @@tidb_isolation_read_engines = "tidb, tikv, tiflash";
Query OK, 0 rows affected (0.00 sec)

TiDB(root@127.0.0.1:test) > select digest, query_sample_text, exec_count from performance_schema.cluster_events_statements_summary_by_digest limit 1;
+------------------------------------------------------------------+-----------------------------------------------------+------------+
| digest                                                           | query_sample_text                                   | exec_count |
+------------------------------------------------------------------+-----------------------------------------------------+------------+
| 35fe560ed8109dacc3b11cd7c194864ec284d4f1b14f9f916e354378d6fd5134 | set @@tidb_isolation_read_engines = "tikv, tiflash" |          2 |
+------------------------------------------------------------------+-----------------------------------------------------+------------+
1 row in set (0.00 sec)

请问你之前手动修改过这个值吗?或者是否改过配置文件中 isolation-read 中的配置项,这是默认的配置:

[isolation-read]
# engines means allow the tidb server read data from which types of engines. options: "tikv", "tiflash", "tidb".
engines = ["tikv", "tiflash", "tidb"]

没有手动的修改过这个值。

这个设置只是回话级别的,退出了之后就不起效了。

您好:
1. 如果当前是使用ansible管理集群的,请尝试在中控机配置的tidb.yml文件中添加(注意和其他文件保持对齐)

     2. 再滚动重启tidb ,  ansible-playbook rolling_update.yml -t tidb,再重启过程中,tidb连接的session会中断,所以尽量在业务低峰期进行,多谢

从3.1.0-beta2升级到4.0RC是,由于global的 variable被降级为session。导致了上述问题。 删除了global_variables表中的这个,就可以解决此问题。 DELETE FROM mysql.GLOBAL_VARIABLES WHERE VARIABLE_NAME = “tidb_isolation_read_engines”;