innodb_buffer_pool_dump_at_shutdown=ON是自动预热的强制前提,关机时不设此参数则无法保存页信息,导致innodb_buffer_pool_load_at_startup无数据可加载;该参数为只读,须在my.cnf的[mysqld]段显式配置并重启生效。
为什么 innodb_buffer_pool_dump_at_shutdown=ON 是预热前提
不设这个参数,MySQL 关机时根本不会保存任何页信息,
就成了无米之炊。默认值是
,所以哪怕你开了
,启动时也只会默默跳过加载步骤,毫无报错提示。
它不是“可选优化”,而是自动预热链路上的强制开关。关机前没 dump,重启后 Buffer Pool 就是纯冷的,所有查询都得走磁盘——尤其对大表或高并发场景,首波请求延迟可能翻倍。
必须在
中显式设置,运行时
不生效(该变量为只读)
dump 文件名由
控制,默认是
,路径在
下,确保 MySQL 进程对该路径有写权限
异常崩溃或 kill -9 关机时,dump 不会触发,所以不能完全依赖此机制应对所有重启场景
如何验证 dump_at_shutdown 是否真正生效
光改配置不等于落地。最直接的验证方式是:手动执行一次正常关闭 + 启动,然后检查
下是否存在
文件,并确认其内容非空。
更稳妥的做法是在启动后立即查状态:
返回结果中
字段应包含类似
的完成标记。若显示
或为空,说明配置未加载或
mysql
d 启动时没读到该参数。
MySQL(Linux)
MySQL 9.6.0是面向Linux平台的2026年创新版本,核心架构迎来重大革新。其将外键约束与级联操作从InnoDB引擎层上移至SQL层,确保所有数据变更均被完整记录至Binlog,彻底解决了CDC(变更数据捕获)与主从复制中的数据不一致难题。此外,该版本引入container_aware启动选项以原生适配容器环境,并对审计日志进行了组件化重构,为追求极致数据一致性与云原生体验的开发者提供了全新选择。
下载
常见漏点:配置写在
段而非
段
修改
后未重启 mysqld,或重启时用了
指定了其他配置文件
某些容器化部署(如 Docker)未将
正确挂载进容器内
dump_at_shutdown 和 load_at_startup 必须成对启用
这两个参数是绑定动作:
决定“有没有东西可加载”,
决定“启不启动加载”。单独开任意一个都没意义。
启动时加载是异步的,不会阻塞 mysqld 启动完成,但会影响初期性能爬升速度。如果 dump 文件很大(比如几百 MB),加载过程可能持续数秒到分钟级,期间
仍会明显上升。
可控制 dump 比例(默认 25%),避免 dump 全量页导致文件过大、加载过慢;生产环境建议调至 10–20,聚焦 LRU new 区高频页
加载失败不会报错,只会静默跳过;可通过
查看是否进入
状态及进度
若上次 shutdown 未成功 dump,启动时
会直接忽略,不会尝试加载旧文件
预热效果差?先盯住 Innodb_buffer_pool_reads 和命中率
开了自动 dump/load,不代表预热就一定成功。真正要盯的是两个指标:
(逻辑读请求数)和
(物理读次数)。重启后观察它们的比值:理想情况下,
应快速收敛至低位,且
比值迅速回升至 95%+。
如果
居高不下,说明页面没真正加载进来,或加载后被快速淘汰(比如 LRU old 区太小、
设置不合理)
中的
和
可辅助判断加载量是否符合预期
不要迷信“文件存在”或“状态显示 Loading”,最终要看 I/O 统计——这才是唯一真实反馈
innodb_buffer_pool_load_at_startupOFFload_at_startupmy.cnfSET GLOBALinnodb_buffer_pool_filenameib_buffer_pooldatadirdatadirib_buffer_poolSHOW STATUS LIKE 'Innodb_buffer_pool_dump_status';ValueDumping buffer pool to /var/lib/mysql/ib_buffer_pool at page number 12345Not started[client][mysqld]my.cnf--defaults-filemy.cnfdump_at_shutdownload_at_startupInnodb_buffer_pool_readsinnodb_buffer_pool_dump_pctSHOW STATUS LIKE 'Innodb_buffer_pool_load_status'Loadingload_at_startupInnodb_buffer_pool_read_requestsInnodb_buffer_pool_readsInnodb_buffer_pool_readsInnodb_buffer_pool_read_requests / Innodb_buffer_pool_readsInnodb_buffer_pool_readsinnodb_old_blocks_pctinformation_schema.INNODB_BUFFER_POOL_STATSpages_datapages_free