Monday, August 14, 2006

MySQL可靠吗?

由于工作的原因,一直用着MySQL,一来是免费,二来简单易用。
但是随着应用的扩展,对于功能和稳定性的要求也越来越高。最近遇到了一件事情,让我觉得很是不爽,MySQL究竟可不可靠?

事情是这样的,安装完MySQL之后,在简单配置了my.cnf和启动测试之后,就清掉了binlog打算投入使用了。由于经验不足,没有删除ib_logfileX,又因为在第一次启动后修改了配置文件,已创建的ib_logfileX的文件大小和配置文件中的innodb_log_file_size不一致,导致了接下来的问题。
启动MySQL,OK。导入预先准备好的SQL脚本,OK。然后,发现了原来显式声明了Engine=InnoDB的表全部创建成了MyISAM模式。
SHOW ENGINES;后看到InnoDB的状态为DISABLE,很是莫名……最后在hostname.err里面看到,因为innodb_log_file_size的问题,导致了:
1)InnoDB被自动禁用了
2)创建InnoDB模式的表的时候,自动转成了MyISAM

我觉得不满的是,InnoDB被禁用只是在日志里这么一笔带过,终端上没有任何警告信息。据说*nix程序的普识原则是没有输出就是没有错误,难道MySQL认为这只是个小问题,并不会影响用户使用?!之后的自动转换模式就是个衍生问题了,虽然有WARNING,不过在批处理模式下显然是没有任何帮助的了。

问题虽然很好解决,删除innodb-log,重启MySQL,ALTER TABLE,就可以了。但是如果问题发现的晚,或者系统不能轻易下线,那损失就不好估算了。

No comments: