记一次由内存不足引起的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 条评论
登录 后参与评论

相关文章

来自专栏数据之美

MySQL 死锁与日志二三事

最近线上 MySQL 接连发生了几起数据异常,都是在凌晨爆发,由于业务场景属于典型的数据仓库型应用,白天压力较小无法复现。甚至有些异常还比较诡异,最后 root...

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

浅谈exp/imp(下) (r5笔记第84天)

相关链接:浅谈exp/imp(上) (r5笔记第81天) 你可能 不了解的dump文件 在工作中,dump文件对于dba而言是再平常不过的文件了。不过因为dum...

3209
来自专栏Spark学习技巧

干货:Sqoop导入导出数据练习

sqoop简介 1,sqoop:sql-to-hadoop, sqoop是连接关系型数据库和hadoop的桥梁: (1),把关系型数据库的数据导入到hadoo...

87810
来自专栏idba

insert 语句加锁机制

之前的文章里面总结了很多死锁案例,其实里面有几篇文章对于insert加锁流程表述的不准确,而且微信公众号又无法修改,所以通过本文重新梳理insert...

1173
来自专栏ASP.NET MVC5 后台权限管理系统

ASP.NET MVC5+EF6+EasyUI 后台管理系统(71)-微信公众平台开发-公众号管理

思维导图 下面我们来看一个思维导图,这样就可以更快了解所需要的功能: ? 上一节我们利用了一个简单的代码例子,完成了与微信公众号的对话(给公众号发一条信息...

3557
来自专栏数据和云

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

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

2856
来自专栏乐沙弥的世界

InnoDB: Error: io_setup() failed with EAGAIN

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

871
来自专栏数据和云

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

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

1154
来自专栏idba

Tokudb安装测试初探

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

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

迁移式升级的测试(三)(r10笔记第36天)

还是继续昨天的任务。 前面的内容可以参见:迁移式升级的一点思考 (r10笔记第27天)、迁移式升级的新方案测试 (r10笔记第30天)、迁移式升级的测试(二)(...

3455

扫码关注云+社区