事发背景

测试环境更换数据盘,直接采取在线将数据目录暴力拷贝到新盘,然后将原服务关闭,启用新盘。

服务是可以正常启动的,但是没多会开发就反应服务down了,错误日志输出

2017-05-17 15:06:28 0x7ffdadff7700  InnoDB: Assertion failure in thread 140727522653952 in file trx0purge.cc line 167
InnoDB: Failing assertion: purge_sys->iter.trx_no <= purge_sys->rseg->last_trx_no
InnoDB: We intentionally generate a memory trap.
InnoDB: Submit a detailed bug report to http://bugs.mysql.com.
InnoDB: If you get repeated assertion failures or crashes, even
InnoDB: immediately after the mysqld startup, there may be
InnoDB: corruption in the InnoDB tablespace. Please refer to
InnoDB: http://dev.mysql.com/doc/refman/5.7/en/forcing-innodb-recovery.html
InnoDB: about forcing recovery.
07:06:28 UTC - mysqld got signal 6 ;
This could be because you hit a bug. It is also possible that this binary
or one of the libraries it was linked against is corrupt, improperly built,
or misconfigured. This error can also be caused by malfunctioning hardware.
Attempting to collect some information that could help diagnose the problem.
As this is a crash and something is definitely wrong, the information
collection process might fail.key_buffer_size=8388608
read_buffer_size=2097152
max_used_connections=0
max_threads=1000
thread_count=0
connection_count=0
It is possible that mysqld could use up to
key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 4117496 K  bytes of memory
Hope that's ok; if not, decrease some variables in the equation.

Thread pointer: 0x7ffda8000900
Attempting backtrace. You can use the following information to find out
where mysqld died. If you see no messages after this, something went
terribly wrong...
stack_bottom = 7ffdadff6d98 thread_stack 0x40000
/usr/local/mysql/bin/mysqld(my_print_stacktrace+0x35)[0xf32bd5]
/usr/local/mysql/bin/mysqld(handle_fatal_signal+0x4a4)[0x77b844]
/lib64/libpthread.so.0(+0xf7e0)[0x7ffe223e17e0]
/lib64/libc.so.6(gsignal+0x35)[0x7ffe2108c5e5]
/lib64/libc.so.6(abort+0x175)[0x7ffe2108ddc5]
/usr/local/mysql/bin/mysqld[0x10c5da5]
/usr/local/mysql/bin/mysqld(_ZN20TrxUndoRsegsIterator8set_nextEv+0x322)[0x1093822]
/usr/local/mysql/bin/mysqld[0x1095ea3]
/usr/local/mysql/bin/mysqld(_Z9trx_purgemmb+0x6ad)[0x10974bd]
/usr/local/mysql/bin/mysqld[0x1076178]
/usr/local/mysql/bin/mysqld(srv_purge_coordinator_thread+0x86f)[0x107914f]
/lib64/libpthread.so.0(+0x7aa1)[0x7ffe223d9aa1]
/lib64/libc.so.6(clone+0x6d)[0x7ffe21142aad]Trying to get some variables.
Some pointers may be invalid and cause the dump to abort.
Query (0): is an invalid pointer
Connection ID (thread ID): 0
Status: NOT_KILLEDThe manual page at http://dev.mysql.com/doc/mysql/en/crashing.html contains
information that should help you find out what is causing the crash.

查看了提示的链接,可能的影响因素包括、

1、数据文件或索引文件有坏页

2、mysqld服务在运行期间,有其它项目操作数据文件和索引文件

这条和先前的操作有关,在mysqld服务运行期间我直接将数据文件拷贝到了另一盘,这样做很可能导致副本的数据和索引是不一致的

按照官网给出的建议对日志中的stack进行了解析

vim /data1/sql/mysqld.sym
0xf32bd5
0x77b844
0x7f751eed67e0
0x7f751db815e5
0x7f751db82dc5
0x10c5da5
0x1093822
0x1095ea3
0x10974bd
0x1076178
0x107914f
0x7f751eeceaa1
0x7f751dc37aadnm -D -n /usr/local/mysql/bin/mysqld > /data1/sql/mysqld.sym                         resolve_stack_dump -s /data1/sql/mysqld.sym -n /data1/sql/mysqld.stack
0xf32bd5 my_print_stacktrace + 53
0x77b844 handle_fatal_signal + 1188
0x7f751eed67e0 _end + 486423968
0x7f751db815e5 _end + 466152357
0x7f751db82dc5 _end + 466158469
0x10c5da5 _Z23ut_dbg_assertion_failedPKcS0_m + 170
0x1093822 _ZN20TrxUndoRsegsIterator8set_nextEv + 802
0x1095ea3 _Z14trx_purge_stopv + 5363
0x10974bd _Z9trx_purgemmb + 1709
0x1076178 _Z26srv_get_active_thread_typev + 1048
0x107914f srv_purge_coordinator_thread + 2159
0x7f751eeceaa1 _end + 486391905
0x7f751dc37aad _end + 466899053

找不出导致crash的根本原因,暂时的解决方案是通过设置innodb_force_recovery来启动

相关内容参考InnoDB Recovery

1、设置innodb_force_recovery 先后设置1和2都无效,最后设置为3后启动成功

2、启动后dump所有的数据库,恢复到新建实例中

转载于:https://www.cnblogs.com/Bccd/p/6868904.html

MySQL5.7 服务 crash 后无法启动相关推荐

  1. mysql+在服务中无法启动_MySQL服务初始化后无法启动

    添加系统服务 [root@localhost mysql]# cp support-files/mysql.server /etc/rc.d/init.d/mysqld [root@localhost ...

  2. windows 服务停止后无法启动,报:“服务正在启动或停止中,请稍后片刻再试一次”

    windows 服务正在启动或停止中,请稍后片刻再试一次 继续使用Windows管理器中的资源管理器,在Windows任务管理器中选择"性能",并选择"资源监视器&quo ...

  3. 错误1920(fontcache未能启动服务)后手动启动遇到错误1079的解决方法

    装office遇到1920,按网上方法手动启动Windows Font Cache Service时出现错误1079 按一般1079的解决方式完全没用,试了半天发现服务--Windows Font C ...

  4. win10系统Mysql5.7服务启动报:1053错误:服务没有及时响应启动或控制请求

    win10安装Mysql5.7: MySQL压缩包解压后,在目录下增加my.ini配置文件 [mysqld]port = 3306basedir=D:\Mysqldatadir=D:\Mysql\da ...

  5. MySQL5.7服务无法启动或Table ‘mysql.plugin‘ doesn‘t exist

    MySQL部署时提示Table mysql.plugin doesn't exist的解决方法 https://www.jb51.net/article/116604.htm 今天部署了免安装版的My ...

  6. linux 下 设置 MySQL8 表名大小写不敏感方法,解决设置后无法启动 MySQL 服务的问题

    linux 下 设置 MySQL8 表名大小写不敏感方法,解决设置后无法启动 MySQL 服务的问题 参考文章: (1)linux 下 设置 MySQL8 表名大小写不敏感方法,解决设置后无法启动 M ...

  7. tomcat内存溢出(修改catalina.bat后windows启动tomcat服务没有效果) | 王猛的个人主页...

    2019独角兽企业重金招聘Python工程师标准>>> tomcat内存溢出(修改catalina.bat后windows启动tomcat服务没有效果) | 王猛的个人主页. 转载于 ...

  8. 电脑显示依赖服务器组无法启动,重装系统后电脑一直提示依赖服务或组无法启动的解决方法教程[多图]...

    电脑一直提示依赖服务或组无法启动怎么办?不少用户反映,重装系统后经常出现依赖服务或组无法启动的问题,本文就给大家分享具体解决方法. 解决方法: 1.按"win+r"打开运行,输入& ...

  9. mongoDB服务端mongod安装启动成功后找不到客户端mongo

    mongoDB服务端mongod安装启动成功后找不到客户端mongo mongodb正常安装后,修改环境变量,且mongod能轻松跑同,但是mongo命令无法被正确执行 前往安装目录下/bin目录中, ...

  10. 服务器开机显示mm,【分享】mmrecov到新的服务器后,启动RPC服务的问题

    分享一个mmrecov到新的服务器后,启动RPC服务的问题:- 我已经安装NW软件(7.6.3)到一个新的服务器(和旧的相同 - 在这些方面:OS,名称,IP,主机文件) - 运行正常,- 从旧服务器 ...

最新文章

  1. 空间点像素索引(三)
  2. 处理错误:ORA-27101: shared memory realm does not exist 解决方案
  3. 创建带有关联的 XML 架构的 XML 文件 从 XML 文件创建 XML 架构
  4. java calendar字符串显示_Java获取当前时间年月日、时间格式化打印、字符串转日期...
  5. NVIDIA显示下载Java_大佬们!我的NVIDIA Geforce Experience 一直下载更新怎么办?
  6. InstallShield 2015 生成单个EXE包和 MSI包
  7. 修复迁移后Net Standard项目中的错误
  8. MapReduce操作时Error:The method setInputPaths(JobConf, String) in the type FileInputFormat is not
  9. 4.2 算法之数论 1486 A Funny Game python
  10. LaTeX下载安装及Markdown转PDF方法
  11. 基于MK802 MiniPC的扩展开发应用-系统自制
  12. 公链、私链、联盟链、侧链简介
  13. 信度和效度经典例子_信度、效度、难度、区分度之间有何不同?
  14. JavaScript(JS)的简单了解
  15. 景深决定照相机什么特性_什么是景深?
  16. nas存储如何做远程服务器数据备份_NAS存储与数据备份方案
  17. phpmywind 子菜单调用
  18. 【audio】耳机插拔/线控按键识别流程
  19. thinkpad联想IBM笔记本为什么出现fan error
  20. 苹果是如何让iOS12加速的

热门文章

  1. ffmpeg 中 swscale 的用法
  2. VSCode设置中文语言
  3. servlet跳转问题
  4. 8个很实用的在线工具来提高你的Web设计和开发能力
  5. .7-Vue源码之AST(3)
  6. delphi延时 4种方法
  7. 规定计算机系统实现安全等级保护,计算机信息系统安全等级保护标准体系包括:信息系统安全保.DOC...
  8. PowerMock进行mock测试
  9. 退出myeclipse 8.5配置中心
  10. 关于java.lang.ClassNotFoundException