MySQL Error number: MY-014049; Symbol: ER_IB_BULK_FLUSHER_PUNCH_HOLE; SQLSTATE: HY000 报错 故障修复 远程处理

文档解释

Error number: MY-014049; Symbol: ER_IB_BULK_FLUSHER_PUNCH_HOLE; SQLSTATE: HY000

Message: bulkflusher: Failed to punch hole: table=%s, index=%s, space_id=%zu, page_no=%zu, disk_page_size=%zu, hole_size=%zu, file=%s, err=%zu

错误说明:

ER_IB_BULK_FLUSHER_PUNCH_HOLE表示InnoDB 和操作系统之间无法协调调用posix_fadvise()来执行“喷孔”操作。

常见案例

当MySQL使用InnoDB引擎时,尝试在操作系统中进行“喷孔”操作时,即使指定了参数,也会发出此消息。 这会发生在操作系统当前版本不支持posix_fadvise()函数,或者内核或libc/libaio的编译参数禁止对此的调用的情况下。

解决方法:

有三种可能解决此问题的方法:

a.将变量 innodb_use_punch_hole设置为OFF,使MySQL使用原始方法删除不再需要的数据。 但是,这可能会增加磁盘I/O开销。

b. 升级操作系统到一个支持posix_fadvise()函数的版本,因为只有当操作系统支持该函数时,MySQL才能使用该函数。

c. 要求MySQL设置libaio或libc/libaio,以使posix_fadvise()得到完整的支持,禁止使用一些编译参数,这样MySQL才能使用该函数。


数据运维技术 » MySQL Error number: MY-014049; Symbol: ER_IB_BULK_FLUSHER_PUNCH_HOLE; SQLSTATE: HY000 报错 故障修复 远程处理