再也看不到进程列表了

时间:2012-06-05 20:40:29

标签: mysql

我正在将一个大的csv文件导入到mysql(3000万行)中,我打开另一个终端来显示进程列表。我曾经能够在进程列表中看到行数,但现在,每当我输入命令“show process list”时它就会挂起。我输入了2000万条记录。我必须重新开始吗? iostat的:     [user @ gggggg~] $ iostat     Linux 2.6.18-308.4.1.el5

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           5.02    0.00    0.16    0.87    0.00   93.95

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
sda               2.15         5.31        55.58    8644514   90425752
sda1              0.00         0.00         0.00       2138       5592
sda2              2.15         5.31        55.57    8640178   90419984
sda3              0.00         0.00         0.00       1582        176


top - 14:18:55 up 18 days, 20:00,  2 users,  load average: 2.02, 2.09, 2.06
Tasks: 106 total,   3 running, 103 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.2%us,  0.0%sy,  0.0%ni, 49.9%id, 49.8%wa,  0.0%hi,  0.2%si,  0.0%st
Mem:   8174532k total,  7656780k used,   517752k free,   105904k buffers
Swap:  4257216k total,       88k used,  4257128k free,  6958020k cached

1 个答案:

答案 0 :(得分:0)

首先,检查操作系统中的文件大小

如果该表名为mydb.mytable且它是MyISAM,请执行以下操作:

cd /var/lib/mysql/mydb
watch ls -l mytable.*

如果文件大小不断增长,那么你很好

不要忘记检查磁盘空间

df -h

如果在加载MyISAM表时用完了磁盘空间,mysqld就坐在那里。为什么?根据{{​​3}}说:

  

如果在向MyISAM表添加行时磁盘空间不足,请执行   发生错误。服务器暂停操作直到空间变为   可用,然后完成操作。

因此,如果数据分区超出磁盘空间,则必须释放一些空间,以便mysqld可以继承LOAD DATA INFILE

如果一切都冻结了,你可能必须按如下方式杀死mysqld:

IDTOKILL=`ps -ef | grep mysqld_safe | grep -v grep | awk '{print $2}'`
kill -9 ${IDTOFKILL}
IDTOKILL=`ps -ef | grep mysqld | grep -v grep | awk '{print $2}'`
kill -9 ${IDTOFKILL}

然后,检查您的磁盘空间