代码改变世界

[Warning] [MY-015116] [Server] Background histogram update on SCHEMA.TABLE: Lock

2026-03-09 08:17  潇湘隐者  阅读(4)  评论(0)    收藏  举报

环境介绍

MySQL版本为社区版本 8.4.8, OGG同步Oracle数据库数据到MySQL,部署监控后,发现错误日志有大量告警:"[Warning] [MY-015116] [Server] Background histogram update on xxxxx.checkpointtable: Lock wait timeout exceeded",具体信息如下所示:

2026-03-06T14:22:00.450325+08:00 0 [Warning] [MY-015116] [Server] Background histogram update on xxxxx.checkpointtable: Lock wait timeout exceeded; try resta
rting transaction
2026-03-06T14:23:00.456983+08:00 0 [Warning] [MY-015116] [Server] Background histogram update on xxxxx.checkpointtable: Lock wait timeout exceeded; try resta
rting transaction
2026-03-06T14:24:07.775290+08:00 0 [Warning] [MY-015116] [Server] Background histogram update on xxxxx.gg_heartbeat: Lock wait timeout exceeded; try restarti
ng transaction
2026-03-06T14:25:10.471848+08:00 0 [Warning] [MY-015116] [Server] Background histogram update on xxxxx.checkpointtable: Lock wait timeout exceeded; try resta
rting transaction
2026-03-06T14:26:10.479749+08:00 0 [Warning] [MY-015116] [Server] Background histogram update on xxxxx.checkpointtable: Lock wait timeout exceeded; try resta
rting transaction

原因分析

Oracle官方文档提示,这个告警信息是无害的(harmless).而且是Bug 37090938引起的. 可以通过设置系统变量log_error_suppression_list屏蔽这个告警信息.经过验证实测, 在配置文件my.cnf中设置变量/参数log_error_suppression_list='MY-015116'并重启MySQL服务过后,这个告警信息从错误日志消失了, 具体相关介绍信息如下所示:

Applies To
All Users
MySQL Server - Version 8.4 and later
Summary
On : MySQL 8.4.3 version, Error Messages

Warnings appear in error log after import


ERROR
-----------------------

2024-11-28T13:58:42.090467+01:00 0 [Warning] [MY-015116] [Server] Background histogram update on mysql_innodb_cluster_metadata.routers: Lock wait timeout exceeded; try restarting transaction




Solution
The warning is displayed because the InnoDB background statistics thread fails to acquire the appropriate locks to check the existence of histograms (and to update any automatically updated histograms) on the table.

The warning is harmless. 

If you would like to stop the WARNING you can use the following WORKAROUND:

Mask these warnings like this :


[mysqld]
log_error_suppression_list='MY-015116'

Might have to reset the value after MEB runs because MEB sets it back to default.
Variable "log_error_suppression_list" Gets Reset After MEB Has Run (Doc ID KB571934)

Cause
The issue is caused by the following Bug 37090938 - [Warning] [MY-015116] [Server] Background histogram update on SCHEMA.TABLE: Lock

References
MOS document id: 3062572.1
Product Versions
product: MySQL Server - min_version: 8.4 - max_version: none; Information in this article applies to GENERIC (All Platforms)