升级到2.1.5后,偶然发生transactions有999个PREPARE的持续超过1个多小时还没结束,在线等

Viewed 24

版本:2.1.5(从2.1.2升级过来的)
没有启用sys_log_verbose_modules,该配置行前面还是加了# 的默认状态

使用的语句大部分是向DUPLICATE模型表里使用INSERT OVERWRITE TABLE写入,如:
INSERT OVERWRITE TABLE table1 PARTITION(p20240922)

少部分使用UNIQUE模型表是使用INSERT INTO写入,如:
INSERT INTO table2
(...)
SELECT ... FROM ...

另外执行SHOW TRANSACTION FROM db 语句时,会报Missing transaction id的错误,但通过Web界面可以查看到RUNNING的情况

1 Answers

找到影响的语句了,是刷新了几个物化视图表,一共6个
REFRESH MATERIALIZED VIEW scm_mv_...1 AUTO;

REFRESH MATERIALIZED VIEW scm_mv_...2 AUTO;

REFRESH MATERIALIZED VIEW scm_mv_...3 AUTO;

REFRESH MATERIALIZED VIEW scm_mv_...4 AUTO;

REFRESH MATERIALIZED VIEW scm_mv_...5 AUTO;

REFRESH MATERIALIZED VIEW scm_mv_...6 AUTO;

其中有个视图用了分区字段,把分区字段去掉后,就没问题了。物化视图的分区可能还有一些坑,需要以后研究明白