最近mysql数据库经常死掉,用命令net stop mysql命令也无法停掉,关闭Tomcat的时候,出现Waiting for N instance(s) to be deallocated 信息。查了下,大概就是程序没有对数据库连接释放,导致Connection泄露了。因为用的是开元集成的平台,内部程序也不可能一下子给改掉的,就验证一下咯。启动Tomcat,用户登录系统,用netstat -ano|findstr 8000命令来查看tomcat端口占用情况,可以看到8000端口会被用户的IP地址占用,而对应的PID是0,PID=0是什么呢,是叫System Idel Process的一个进程,这个进程是一个空闲的进程。Tomcat一直被这个进程占用,没有释放,时间长了用户多了,mysql就死掉了,至于是不是程序没有释放连接,这个应该是没可能,因为系统已经用了2年,这种情况出现的太少了。 
看一下mysql中表的情况,表的数据长度到达了几个G了,这种是BLOB类型的,存储的数据过多,这样的话是不是因为数据量太大,用户在用的时候对数据库进行操作,空间又不够,互相等待,造成死锁的问题呢? 
     这年头,一定要注意备份啊,mysql要备份的东西比较多, 
     (1)表结构文件,MySQL\MySQL Server 5.1\data目录下存放的就是数据库结构,会看到相应的数据库目录,数据库目录下面有.frm文件,.myd文件,.myi文件,这些文件都是表结构的文件。 
     (2)表数据文件,MySQL Datafiles/ibdata1文件 
     (3)日志文件,MySQL\MySQL Server 5.1\data目录下面ib_logfile0文件和ib_logfile1文件。二进制日志文件,如果你想要重新处理日志止的语句,这很有用。 
     你的数据库结构没有问题的情况下,想恢复数据,如果有(2)、(3)应该是没有问题的,当时我只有(2),把ibdata1文件copy过去,恢复数据还是出了很多状况,启动系统还是不能用的,mysql日志一直提示Your database may be corrupt or you may have copied the InnoDB tablespace but not the InnoDB log files.说多了都是泪,谁让咱是IT呢,系统坏掉了电话都要被用户打爆的节奏,hold不住,无所不用其极的,各种搜索资料啊,最后尝试一下大多数人的办法,设置innodb_force_recovery参数。 
    innodb_force_recovery影响整个InnoDB存储引擎的恢复状况。默认为0,表示当需要恢复时执行所有的

innodb_force_recovery可以设置为1-6,大的数字包含前面所有数字的影响。当设置参数值大于0后,可以对表进行select,create,drop操作,但insert,update或者delete这类操作是不允许的。

1(SRV_FORCE_IGNORE_CORRUPT):忽略检查到的corrupt页。 
2(SRV_FORCE_NO_BACKGROUND):阻止主线程的运行,如主线程需要执行full purge操作,会导致crash。 
3(SRV_FORCE_NO_TRX_UNDO):不执行事务回滚操作。 
4(SRV_FORCE_NO_IBUF_MERGE):不执行插入缓冲的合并操作。 
5(SRV_FORCE_NO_UNDO_LOG_SCAN):不查看重做日志,InnoDB存储引擎会将未提交的事务视为已提交。 
6(SRV_FORCE_NO_LOG_REDO):不执行前滚的操作。 
    设置innodb_force_recovery=4重启msql,再恢复成默认值(即不需要再my.ini文件时设置innodb_force_recovery参数),重启mysql,重启Tomcat,OK了,太惊喜了。 
    菜鸟一个,其中原理讲的都不太清楚,经验之谈,仅供参考。

MySQL数据库INNODB 表损坏修复处理过程的更多相关文章

  1. MySQL数据库InnoDB存储引擎中的锁机制

    MySQL数据库InnoDB存储引擎中的锁机制    http://www.uml.org.cn/sjjm/201205302.asp   00 – 基本概念 当并发事务同时访问一个资源的时候,有可能 ...

  2. MySQL数据库分表的3种方法

    原文地址:MySQL数据库分表的3种方法作者:dreamboycx 一,先说一下为什么要分表 当一张的数据达到几百万时,你查询一次所花的时间会变多,如果有联合查询的话,我想有可能会死在那儿了.分表的目 ...

  3. MySQL基础知识:创建MySQL数据库和表

    虚构一个微型在线书店的数据库和数据,作为后续MySQL脚本的执行源,方便后续MySQL和SQL的练习. 在虚构这个库的过程中,主要涉及的是如何使用命令行管理 MySQL数据库对象:数据库.表.索引.外 ...

  4. [MySQL数据库之表的详细操作:存储引擎、表介绍、表字段之数据类型]

    [MySQL数据库之表的详细操作:存储引擎.表介绍.表字段之数据类型] 表的详细操作 存储引擎 mysql中建立的库======>文件夹 库中建立的表======>文件 用来存储数据的文件 ...

  5. MySQL数据库InnoDB引擎下服务器断电数据恢复

    说明: 线上的一台MySQL数据库服务器突然断电,造成系统故障无法启动,重新安装系统后,找到之前的MySQL数据库文件夹. 问题: 通过复制文件的方式对之前的MySQL数据库进行恢复,发现在程序调用时 ...

  6. MySQL数据库InnoDB存储引擎多版本控制(MVCC)实现原理分析

    文/何登成 导读:   来自网易研究院的MySQL内核技术研究人何登成,把MySQL数据库InnoDB存储引擎的多版本控制(简称:MVCC)实现原理,做了深入的研究与详细的文字图表分析,方便大家理解I ...

  7. Vc数据库编程基础MySql数据库的表查询功能

    Vc数据库编程基础MySql数据库的表查询功能 一丶简介 不管是任何数据库.都会有查询功能.而且是很重要的功能.上一讲知识简单的讲解了表的查询所有. 那么这次我们需要掌握的则是. 1.使用select ...

  8. MySQL数据库以及表的管理

    MySQL数据库以及表的管理 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 今天我们探讨的话题就是如何使用MySQL做开发,我们运维的主要工作不是去开发SQL的,但尽管如此,我们有 ...

  9. 第二百七十七节,MySQL数据库-数据表、以及列的增删改查

    MySQL数据库-数据表.以及列的增删改查 1.创建一个表 CREATE(创建) TABLE(表) ENGINE(引擎) ENGINE=INNODB(引擎)还有很多类引擎,这里只是简单的提一下INNO ...

随机推荐

  1. 用soapUI开发webservice接口

    1,下载soapUI软件,安装到本地 2,打开soapUI软件 3,创建一个开发好的接口 4,进行接口调用 测试:

  2. <i>和<em>、<b>和<strong>标签的区别

    在HTML4.01中:< b > < i > 是视觉要素(presentationl elements),分别表示无意义的加粗,无意义的斜体,仅仅表示样式上是粗体或斜体,而没有 ...

  3. xiugai完了

    <!DOCTYPE html> <html lang="en"> <head> <meta http-equiv="Conten ...

  4. react-native 异常处理 Execution failed for task ':app:mergeDebugResources'.

    1.react-native run-android 失败 * What went wrong:Execution failed for task ':app:mergeDebugResources' ...

  5. ES命令

    基础概念 Elasticsearch有几个核心概念.从一开始理解这些概念会对整个学习过程有莫大的帮助.   接近实时(NRT)        Elasticsearch是一个接近实时的搜索平台.这意味 ...

  6. Java Xms Xmx

    堆设置 -Xms 是指程序启动时初始内存大小(此值可以设置成与-Xmx相同,以避免每次GC完成后 JVM 内存重新分配). -Xmx 指程序运行时最大可用内存大小,程序运行中内存大于这个值会 OutO ...

  7. vue.js + element 搭建后台管理系统 笔记(一)

    此文仅记录本人在搭建后台系统过程中遇到的难点及注意点,如果能帮到各位自然是极好的~~~ 项目主要架构:vueJS.elementUI.scss 一.项目初始化 首先需要安装nodejs,安装方法就不在 ...

  8. Go-内存To Be

    做一个快乐的互联网搬运工- 逃逸分析 逃逸分析的概念 在编译程序优化理论中,逃逸分析是一种确定指针动态范围的方法——分析在程序的哪些地方可以访问到指针. 它涉及到指针分析和形状分析. 当一个变量(或对 ...

  9. 使用notepad++写markdown的配置过程

    已过时 下载最新的markdown插件,github 解压后将MarkdownViewerPlusPlus.dll复制一份到notepad就能看到markdown插件的小图标了 设置markdown高 ...

  10. jQuery基础--音乐视频操作

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...