论mysql 的修复

怎甘沉沦 提交于 2020-10-13 08:10:35

  mysql本身的校验机制很强,所以他的ibdata,iblog之间如果匹配不上,会出大问题:

   比如强制断电会引起;

   比如数据库在更新时,你拷了整个数据库,准备另作他用,结果发现,数据会起不来。

(1)

   在强制断电引起的启动不来的问题,我们通常会修改数据库的innodb_force_recovery 方式,先导出数据,然后重建数据库,再导入数据 ,在数据量不大的情况 下,这种都没有问题;而遇到海量的数据时,你的导出导入,理论上是可行的,但实际上会要命。

(2)

   所以我们升级了Mysql,让数据库更加强健;

    增加了主备,不可能同时坏掉吧?

    在A ,B主备情况下,通常,如果坏了一个,只需要拷贝一个数据文件到另一个,修改下uuid,再建立主备就没有问题了。切记在dB关掉的情况下,不然又会出现 ibdata log不一致而无法起来的情况 。

     这种一锅端的修复方式 最为省心,只是数据量比较大的情况,比如5000万数据,50G左右的话,拷贝时间就够呛!

    当然也要注意 chown -R mysql:mysql data3307 这样的更改组的概念,不然你用root账号去操作,后面mysql权限不够也启动不来。

  (3)当然,你还可以新建立数据库后,

       通过drop tablesspace ;import table的方式导入原来的海量数据,这样仿佛还比较快呢,。并且这个对于个别表坏掉的情况处理是极为适宜的。

       这种方式对于拷贝全量的线上数据也是极合适的,因为线上的数据,在变化,不好全量拷贝,只能一个个表。

 

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!