首页 > 解决方案 > MySQL 过程/事件未完成执行。花了大约30分钟

问题描述

所以我们有一个数据库服务器(MySQL),它有 40 个数据库(20 个数据库 As 和 20 个数据库 B)。As 被命名为 db_a_01、db_a_02.. 等等(Bs 是 db_b_01.. 等等)。As 具有相同的结构,Bs 也具有相同的结构,但 As 和 Bs 具有不同的结构。

现在,As 有一个procedure(TransferItemsData()),它selects从一个表中处理数据,然后inserts将处理后的数据发送到它们各自的 B 数据库表(db_a_08 到 db_b_08)。All 还有一个event(ScheduleTransfer) 调用procedureTransferItemsData() 并设置为在晚上 11:30 执行。

所以设置了 20 个数据库在晚上 11:30 同时传输数据。今早查看logs表,发现只有200k以下的数据库才能完成传输,最长需要29分钟。那些有超过 200k 行要传输的数据库无法传输所有项目。他们也没有记录 date_completed,所以我确定程序或事件都已停止。

是否有执行时间限制proceduresevents他们似乎在大约 30 分钟后停止了。或者他们在上午 12 点停止了?转移于晚上 11:30 开始。为什么procedures/events停止了?

标签: mysqldatabasestored-proceduresmysql-event

解决方案


推荐阅读