记一次由内存不足引起的MYSQL停止故障

我的一台服务器刚进行了迁移,从独立服务器迁移到了腾讯云,奇怪的是,每隔一周左右,会发生一次MYSQL莫名其妙停止服务的情况,重启服务器之后正常。

根据监控日志,找到服务停止时间附近的错误日志,发现如下:

171112 7:59:05 [Note] Plugin ‘FEDERATED’ is disabled. 171112 7:59:05 InnoDB: The InnoDB memory heap is disabled 171112 7:59:05 InnoDB: Mutexes and rw_locks use GCC atomic builtins 171112 7:59:05 InnoDB: Compressed tables use zlib 1.2.3 171112 7:59:05 InnoDB: Using Linux native AIO 171112 7:59:05 InnoDB: Initializing buffer pool, size = 256.0M 171112 7:59:05 InnoDB: Completed initialization of buffer pool 171112 7:59:05 InnoDB: highest supported file format is Barracuda. 171112 7:59:05 InnoDB: Waiting for the background threads to start 171112 7:59:06 InnoDB: 5.5.57 started; log sequence number 1595675 171112 7:59:06 [Note] Recovering after a crash using mysql-bin 171112 7:59:06 [Note] Starting crash recovery… 171112 7:59:06 [Note] Crash recovery finished. 171112 7:59:06 [Note] Server hostname (bind-address): ‘0.0.0.0’; port: 3306 171112 7:59:06 [Note] – ‘0.0.0.0’ resolves to ‘0.0.0.0’; 171112 7:59:06 [Note] Server socket created on IP: ‘0.0.0.0’. 171112 7:59:07 [Note] Event Scheduler: Loaded 0 events 171112 7:59:07 [Note] /www/server/mysql/bin/mysqld: ready for connections. Version: ‘5.5.57-log’ socket: ‘/tmp/mysql.sock’ port: 3306 Source distribution 171112 8:13:05 [Note] Plugin ‘FEDERATED’ is disabled. 171112 8:13:06 InnoDB: The InnoDB memory heap is disabled 171112 8:13:06 InnoDB: Mutexes and rw_locks use GCC atomic builtins 171112 8:13:06 InnoDB: Compressed tables use zlib 1.2.3 171112 8:13:06 InnoDB: Using Linux native AIO 171112 8:13:06 InnoDB: Initializing buffer pool, size = 256.0M InnoDB: mmap(274726912 bytes) failed; errno 12 171112 8:13:06 InnoDB: Completed initialization of buffer pool 171112 8:13:06 InnoDB: Fatal error: cannot allocate memory for the buffer pool 171112 8:13:06 [ERROR] Plugin ‘InnoDB’ init function returned error. 171112 8:13:06 [ERROR] Plugin ‘InnoDB’ registration as a STORAGE ENGINE failed. 171112 8:13:06 [ERROR] Unknown/unsupported storage engine: InnoDB 171112 8:13:06 [ERROR] Aborting 171112 8:13:06 [Note] /www/server/mysql/bin/mysqld: Shutdown complete

一开始便沿着Plugin ‘FEDERATED’ is disabled.这个信息去查,找到很多资料说是因为没有设置tmpdir的原因,但想了想,应该跟这个没有关系,于是继续找。

后来看到这里,才发现问题mmap(274726912 bytes) failed; errno 12

后面紧接着几句cannot allocate memeory for the buffer pool无法分配内存给buffer pool,内存不足了?

由于我已经重启服务器了,所以没法看到当时的内存占用情况。然后就想,服务器的变化,之前是4G的独立服务器,现在是4G内存的云服务器,按理说应该不会有问题,腾讯云的云主机内存也不会超售。

然后在腾讯云的公告里乱翻,发现一则“关于新购买Linux服务器不再提供SWAP盘的通知”,然后赶紧执行一下free -m看了一下,发现果然swap分区为0

然后按照

https://cloud.tencent.com/document/product/362/3597

这个说明分配了swap分区,恢复正常了。(文中xxx替换到你想分配到的目录,我替换到了/mnt/swap下,LABEL=xxx这里不用管,直接写/mnt/swap即可)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏杨建荣的学习笔记

一条看似平常的报警邮件所做的分析(r8笔记第9天)

今天留意到一封报警邮件。内容如下: ZABBIX-监控系统: ------------------------------------ 报警内容: CPU u...

2574
来自专栏Hadoop实操

CM启动报InnoDB engine not found分析

将/tmp目录权限修改为777,重启mysql和cloudera-scm-server服务

4415
来自专栏数据和云

专家出诊:SQL Server 高CPU系列之索引诊断

作者题记:CPU高使用率往往会导致SQL Server服务响应缓慢,查询超时,甚至服务挂起僵死,可以说CPU高使用率是数据库这种后台进程服务的第一大杀手。引发C...

4494
来自专栏杨建荣的学习笔记

由drop datafile导致的oracle bug(r6笔记第56天)

今天碰到了一个dataguard在10gR2的bug,不管怎么样确实是在特定的时间做了特定的操作结果碰到了特定的问题。 这个问题是在10gR2的版本10.2.0...

2933
来自专栏idba

Tokudb安装测试初探

TokuDB 是一个高性能、支持MVCC的MySQL 和 MariaDB 的存储引擎。TokuDB 的主要特点是数据压缩功能出色,对高写压力的支持,由美国...

1221
来自专栏数据和云

深入内核:DUMP Block的数据读取与脏数据写入影响

张乐奕 云和恩墨副总经理 Oracle ACE 总监 ITPUB Oracle数据库管理版版主、Oracle高可用版版主、ACOUG联合创始人 如果我们执行al...

2936
来自专栏数据和云

当SQL Server爱上Linux:配置 SQL Server 2017 上的可用性组初体验

作者 | 张乐奕:Oracle ACE 总监,ACOUG (中国 Oracle 用户组)联合发起人。Oracle 数据库高可用解决方案与 Exadata 一体...

1524
来自专栏chenssy

在一个千万级的数据库查寻中,如何提高查询效率?

1、对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 orderby 涉及的列上建立索引;

1502
来自专栏乐沙弥的世界

SQL*PLus 帮助手册(SP2-0171)

    对于经常在SQL*Plus 下工作的大师们而言,总是时不时查询SQL*Plus的帮助命令。着实太多了,记不住。SQL*Plus下直接提供了help命令来...

3173
来自专栏乐沙弥的世界

InnoDB: Error: io_setup() failed with EAGAIN

    最近安装好了MySQL之后,在启动MySQL服务时无法正常启动MySQL。提示没有更新/var/lib/mfailedZDB.pid并退出。该MySQL...

1271

扫码关注云+社区

领取腾讯云代金券