mysqldump的disable-keys引发的灾难

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysqldump的disable-keys引发的灾难相关的知识,希望对你有一定的参考价值。

mysqldump 有一个默认的参数disable-keys ,默认是开启的。
这在绝大部分情况下是没问题的,但是特殊情况下,可能会带来灾难性的后果。

回想几年前,某知名手机论坛白天莫名奇妙的刷不开网页,最后没办法停机维护小半天的情况,据小道消息,就是这个问题造成的。

整个过程猜测如下:

    1、他们的环境还是比较规范的,有测试跟线上环境,开发人员在测试环境里用工具导出了一部分数据出来,需要导入到线上环境。
        另外由于论坛,目前绝大补发论坛都是myisam表引擎,此论恰好是myisam(后面说明为啥是myisam),奠定了灾难的基础。

    2、普通的数据库,这种操作方法完全是没有问题,但是这个是知名论坛,访问量是比较大的, 论坛的一个主表被执行了disable-keys,悲剧就发生了。




另外:
    这个情况只针对于myisam 表,对于大家用的最多的innodb是没有问题的。
    对于discuz 论坛这样的老系统,涉及不同环境导入数据使用dump导出部分数据,然后导入到另一个环境的时候,一定要注意了。

    符合上面的情况情况下,可以使用 --disable-keys=FAlSE 避免发生。

以上是关于mysqldump的disable-keys引发的灾难的主要内容,如果未能解决你的问题,请参考以下文章

mysqldump备份的问题

如何用mysqldump

mysqldump怎样导出一个库的多个表

mysqldump命令怎么找到

mysql mysqldump如何用

mysql 用mysqldump时出现错误 啥回事?