我使用Tomcat 7作为服务器在openshift上创建了一个可伸缩的java应用程序。应用程序连接到安装在单独设备上的MySQL数据库。整个数据库大小约为500MB。该数据库有一个表,几乎占数据库大小的80%,并且有一个FULLTEXT列。
当我恢复数据库时,我使用命令禁用了表的键:
alter table lbpage disable keys;
加载数据后,我发出以下命令来启用密钥:
alter table lbpage enable keys;
大约15-20分钟后,我收到以下错误:
mysql> alter table lbpage enable keys;
Query OK, 0 rows affected, 2 warnings (14 min 10.26 sec)
mysql> show warnings;
+-------+------+---------------------------------------------------+
| Level | Code | Message |
+-------+------+---------------------------------------------------+
| Error | 3 | Error writing file '/tmp/STfYgR6M' (Errcode: 122) |
| Error | 1034 | 122 when fixing table |
+-------+------+---------------------------------------------------+
2 rows in set (0.00 sec)
我为该表尝试了OPTIMIZE TABLE
和REPAIR TABLE
,但数据库服务器只是挂起。过了一会儿,我开始收到这个错误:
ERROR 144 (HY000): Table './lib/lbpage' is marked as crashed and last (automatic
?) repair failed
我尝试过使用小型装备和中型装备 - 但结果是一样的。
我不确定数据库是否达到openshift设置的任何限制?另外,有什么方法可以微调mysqld
守护进程吗?
答案 0 :(得分:0)
作为第一步检查齿轮上的磁盘使用情况。然后查看Mysql日志是否显示任何其他错误并发布导致此错误的错误。
默认情况下,您的齿轮每个都可以访问1GB的存储空间。在可扩展的应用程序上,您的磁盘空间仅为1GB,用于db齿轮上的数据。您的数据库设备有多少可用磁盘空间? " alter table"命令制作一份副本并使用400GB(按照上面的注释,占总数据库的80%)。如果是存储空间,您可以将其增加到2GB以查看是否能解决问题。
如果这不是根本原因,请添加导致错误的任何mysql日志,以及mysql db server vs client版本。