linux 系统kill mysql 后自动重启数据库

本文探讨了Linux系统因程序bug导致内存耗尽,进而引发数据库操作异常及自建数据库占用大量内存的问题。深入分析了系统如何kill正在申请内存的程序(包括mysql和异常程序进程),以及mysql在崩溃后的自动恢复机制。详细解释了innodb_fast_shutdown参数在数据库关闭时的作用,以及innodb_force_recovery参数在数据库恢复过程中的关键作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景: 最近linux 系统由于程序bug导致数据库操作异常、程序、自建数据库占用大量内存,将系统资源耗尽,系统kill正在申请内存的程序(mysql和异常程序进程)。mysql崩溃后自动恢复(这里不明白为什么会自动恢复)

1、系统message日志显示内存耗尽、数据库进程被kill

2. mysql日志记录数据库崩溃恢复过程

2.1 关闭参数:innodb_fast_shutdown

    数据库关闭的时候,innodb需要完成所有full purge何insert buffer操作,这需要一些时间,甚至几个小时完成

  • 0
    • 关闭时,需要完成所有full purge,insert buffer, flush dirty pages操作
    • 做 innodb plugin升级时,会设置为0,再正常关闭数据库。
  • 1
    • 默认值,表示不需要完成full purge和insert buffer操作,但是缓冲池的脏数据需要刷新到磁盘
  • 2
    • 既不完成full purge和insert buffer操作,也不把缓冲池的脏数据刷新到磁盘,而是将日志写入日志文件,这样不回有数据丢失,但是下次mysql启动的时候,需要根据日志文件执行恢复操作

2.2 恢复参数:innodb_force_recovery

    这里注意,数字越小,则忽略检查的内容越少,每个大的数字都包含了前面小数字忽略检查的内容。当参数设置大于0后,可以对表格进行DML操作,但是DDL操作时不允许的。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值