Repair with keycache--数据导入中断

1260阅读 0评论2014-12-30 浮生凤年
分类:Mysql/postgreSQL

给数据库库灌入20多个G 的数据,发现某一时刻中断,mysql.log处于/*!40000 ALTER TABLE `logaction` ENABLE KEYS */,无报错日志产生,另打开终端登录数据库查看发现Repair with keycache ,上网查看解决办法,然后mysql> show variables like '%max_sort_file%';和mysql> show processlist;后,神奇的发现数据继续进行导入,但是show processlist还存在Repair with keycache ,此时修改相应参数,到现在为止Repair with keycache仍继续存在,数据暂时未导入完毕--数据未导入完毕时,网络中断,使用的CRT中断后,重新连接,发现该导入进程消失,数据导入失败。
重新采取下面方法导入数据:
nohup mysql -uroot -p  < all.sql  &


----------------------------------分割线------------------------------------------------
MYISAM物理文件为11G
-rw-rw---- 1 mysql mysql  11G Dec 30 11:04 logaction.MYD

dump的时候会重新建立索引
mysql> show processlist;
+----+-----------------+-----------+--------+---------+-------+------------------------+------------------------------------------------------------------------------------------------------+
| Id | User            | Host      | db     | Command | Time  | State                  | Info                                                                                                 |
+----+-----------------+-----------+--------+---------+-------+------------------------+------------------------------------------------------------------------------------------------------+
|  1 | event_scheduler | localhost | NULL   | Daemon  | 78802 | Waiting on empty queue | NULL                                                                                                 |
|  9 | root            | localhost | reader | Query   |  9582 | Repair with keycache   | /*!40000 ALTER TABLE `logaction` ENABLE KEYS */      

其对应参数不满足相应条件
vim /usr/local/mysql/etc/my.cnf 
myisam_max_sort_file_size = 6G

修改参数,使其满足相应条件
mysql> set global myisam_max_sort_file_size=12000000000;

产生其原因:
初步认为其原因的产生,是由于该原表建立索引时,数据量小于myisam_max_sort_file_size值,可以建立成功,然后数据快速增长,
增长到超过myisam_max_sort_file_size值,此时进行逻辑导出导入时,会重新建立索引,但是若myisam_max_sort_file_size的大小,
小于该表,则无法成功创建索引,会hang住。
上一篇:Redis安装部署
下一篇:基于nosql的"新型"游戏服务器框架