2012-06-05 7 views
1

Я импортирую большой файл csv в mysql (30 миллионов строк), и у меня появился еще один терминал, чтобы показать список процессов. Раньше я мог видеть количество строк в списке процессов, но теперь, когда я вхожу в команду «show process list», она зависает. У меня было импортировано 20 миллионов записей. Должен ли я начинать все заново? IOSTAT: [пользователь @ 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 

ответ

0

Во-первых, проверьте размер файла с ОС

Если таблица называется mydb.mytable и это MyISAM, сделайте следующее:

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

Если размер файла продолжает расти, вы прекрасно

не забудьте проверить г iskspace

df -h 

Если вы выбежали из дискового пространства при загрузке таблицы MyISAM, туздЫ просто сидит там. Зачем? По MySQL 5.0 Certification Study Guide Page 408,409 Section 29.2 bulletpoint 11 говорит:

Если вы бежите из дискового пространства при добавлении строки в таблицу MyISAM, не происходит ошибки. Сервер приостанавливает работу до тех пор, пока не станет доступным , а затем завершит операцию.

Таким образом, если раздел данных из дискового пространства, вы должны освободить пространство так туздЫ может conitnue в LOAD DATA INFILE.

Если все кажется заморожен, то, возможно, придется убить туздЫ следующим образом:

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} 

Затем проверьте ваш Diskspace

+0

Так я должен отменить INFILE данные нагрузки? –

+0

Два вопроса: 1) Вы из дискового пространства? 2) Неужели стол все еще растет? – RolandoMySQLDBA

+0

Я не могу даже проверить дисковое пространство, так как он зависает, если я пытаюсь перейти в папку, где находятся все мои таблицы. Я не могу проверить, растет ли таблица. Я беспокоюсь о том, что мне снова придется убивать нить, и это будет продолжаться вечно. –

Смежные вопросы