mysqldump 有一个默认的参数disable-keys ,默认是开启的。
这在绝大部分情况下是没问题的,但是特殊情况下,可能会带来灾难性的后果。
回想几年前,某知名手机论坛白天莫名奇妙的刷不开网页,最后没办法停机维护小半天的情况,据小道消息,就是这个问题造成的。
整个过程猜测如下:
1、他们的环境还是比较规范的,有测试跟线上环境,开发人员在测试环境里用工具导出了一部分数据出来,需要导入到线上环境。
另外由于论坛,目前绝大补发论坛都是myisam表引擎,此论恰好是myisam(后面说明为啥是myisam),奠定了灾难的基础。
2、普通的数据库,这种操作方法完全是没有问题,但是这个是知名论坛,访问量是比较大的, 论坛的一个主表被执行了disable-keys,悲剧就发生了。
另外:
这个情况只针对于myisam 表,对于大家用的最多的innodb是没有问题的。
对于discuz 论坛这样的老系统,涉及不同环境导入数据使用dump导出部分数据,然后导入到另一个环境的时候,一定要注意了。
符合上面的情况情况下,可以使用 --disable-keys=FAlSE 避免发生。
时间: 2024-12-30 02:53:01