Documentation Home
MySQL 8.4 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 39.8Mb
PDF (A4) - 39.9Mb
Man Pages (TGZ) - 257.9Kb
Man Pages (Zip) - 364.9Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 Reference Manual  /  ...  /  Excluding or Including Buffer Pool Pages from Core Files

17.8.3.7 排除或包括缓冲池页面从核心文件

核心文件记录了运行进程的状态和内存映像。由于缓冲池位于主内存中,而运行进程的内存映像被dump到核心文件中,因此具有大缓冲池的系统可能在mysqld进程死后生成大的核心文件。

大核心文件可能会出现多种问题,包括写入时间、磁盘空间占用和传输大文件的挑战。

排除缓冲池页面也可能是出于安全考虑的原因,如果您对将数据库页面dump到核心文件中有疑虑,这些文件可能会被共享在您的组织内部或外部用于调试目的。

Note

在mysqld进程死后访问缓冲池页面中的数据可能在某些调试场景中非常有用。如果您对是否包括或排除缓冲池页面存在疑虑,请咨询MySQL支持。

只有在core_文件变量启用且操作系统支持madvise()系统调用中的MADV_DONTDUMP非 POSIX 扩展时,innodb_ buffer_pool_in_core_file选项才是有意义的。该扩展在 Linux 3.4 及更高版本中支持,导致指定范围内的页面被排除在核心dump中。innodb_ buffer_pool_in_core_file选项默认禁用,在支持 MADV_DONTDUMP 的系统上否则默认为 ON。

Note

在 MySQL 8.4 之前,innodb_ buffer_pool_in_core_file默认启用,而不是禁用。

要生成包含缓冲池页面的核心文件,请使用--core-file--innodb-buffer-pool-in-core-file=ON选项启动服务器。

$> mysqld --core-file --innodb-buffer-pool-in-core-file=ON

core_文件 变量是只读的,且默认禁用。可以通过在启动时指定--核心文件选项来启用它。innodb_缓冲池在核心文件中 变量是动态的,可以在启动时或使用SET 语句在运行时配置。

mysql> SET GLOBAL innodb_buffer_pool_in_core_file=OFF;

如果innodb_缓冲池在核心文件中 变量被禁用,但操作系统不支持 MADV_DONTDUMP,或出现madvise() 失败,MySQL 服务器错误日志中将写入警告,并禁用core_文件 变量,以防止意外包含缓冲池页的核心文件。如果只读core_文件 变量被禁用,服务器必须重新启动以启用它。

以下表格显示了配置和 MADV_DONTDUMP 支持方案,该方案确定是否生成核心文件,以及它们是否包含缓冲池页。

Table 17.4 核心文件配置方案

core_file variable innodb_buffer_pool_in_core_file variable madvise() MADV_DONTDUMP Support Outcome
OFF (default) 不相关的结果 不相关的结果 不生成核心文件
ON 在没有MADV_ DONTDUMP支持的系统上(默认) 不影响结果 生成核心文件时包括缓冲池页
ON OFF(在有MADV_ DONTDUMP支持的系统上默认) 生成核心文件时不包括缓冲池页
ON OFF 不生成核心文件,core_ file已禁用,并将错误日志写入服务器错误日志

通过禁用innodb_buffer_pool_in_core_file变量可以实现核心文件大小的减少,但这也取决于缓冲池的大小。此外,InnoDB页大小也会对结果产生影响。较小的页大小意味着相同数量数据需要更多页,并且更多页意味着更多页元数据。以下表格提供了不同页大小下1GB缓冲池核心文件大小减少的示例。

表17.5:包括和排除缓冲池页的核心文件大小

innodb_page_size Setting Buffer Pool Pages Included (innodb_buffer_pool_in_core_file=ON) Buffer Pool Pages Excluded (innodb_buffer_pool_in_core_file=OFF)
4KB 2.1GB 0.9GB
64KB 1.7GB 0.7GB