mysql 版本:5.5.28
客户服务器托管的机房一直都有突然停电的问题,导致数据表损坏,目前来看没法彻底来解决这个问题(-_-" 不想承担UPS费用)!
原用的 MyISAM 引擎,因为有好几百个表,就写了个脚本,在恢复供电之后来 check table 并 repair 损坏的 table 。检查速度还算可以,而且客户那边也可以自己在线操作!
后新加了一些功能使用的 InnoDB 引擎,可在 repair table 时候出现 The storage engine for the table doesn't support repair
因客户服务器不允许外网远程访问,而且本人也不能时刻在网络上远程。
想问下 如何才能快速的 check 损坏的 InnoDB 引擎表,并快速修复数据,而不用修改 my.ini 文件,重启mysql?这些操作客户那边操作不了!~麻烦有过这方面的经验的兄弟帮解答下!多谢 多谢!~mysql

解决方案 »

  1.   

    innodb要比myisam健壮很多 而且有自我修复的能力 
    但是一旦innodb的数据文件损坏  只能找备份恢复
      

  2.   

    innodb 从理论上文件因停电损坏的机率很小。它是先写LOG然后写数据。
      

  3.   

    真的么?如果一般停电情况下不损坏就太好不过了!MyISAM 是每次停电必定损坏,数据量上千万的表修复起来搞死人
     
      

  4.   

     哎,怕的就是这个啊!~万一损坏了。客户那不能自己处理,我在线远程修复比较费劲!~ 如果真能像 ACMAIN_CHM 说的 从理论上文件因停电损坏的机率很小 那就太好了!~
      

  5.   

    这个倒是做了,但就怕当天意外断电,没修复过 innodb类型表!
      

  6.   

    有备份你就放心 这么小概率让你碰上 用备份还原就行再不行就再找个机器做slave 这样即使一台机器不能用 还有另外的机器
      

  7.   

    innodb损坏表的几率还是比较小的,因为innodb是先写入日志中,然后在写入表中的数据的。
      

  8.   

    innodb问题比较少,但同样有时会有问题,备份非常重要和必要。