Проблема с импортом sql дампа mysql

12
S
На сайте с 09.10.2006
Offline
45
1630

Всем привет!

Проблема такая: дамп весит около 4 гиг, импорт длился очень долго и в итоге до конца не выполнился для одной таблички - заполнилось только 2/3 от всех данных в ней.

Что теперь делать?

С ходу придумал вариант написать пхп скрипт, который отбросит ненужные строки sql дампа до строки с которой нужно начать. Но может есть другое решение проблемы?

guess_ein
На сайте с 10.07.2003
Offline
47
#1

slip, а как производилось резервное копирование? В шелле, с помощью ПХПМайАдминки или другой софтины?

И смотри не перепутай СДЛ и ЛСД
S
На сайте с 09.10.2006
Offline
45
#2

в шеле фоном

guess_ein
На сайте с 10.07.2003
Offline
47
#3

Странно даже... У меня на петерхосте 1,5гига минуты за 4 сделался дамп... Ну да ладно... По проблеме, мог бы предложить следующий вариант, напишите скрипт который будет дампить отдельно таблицы... Ну и запустите его необходимое количество раз, для выграбливания недостающих данных.

P
На сайте с 08.03.2007
Offline
250
#4

Попробуйте понять, почему дамп не раскрылся - возможно, с базой или сервером глобальная проблема, и сервер надо менять.

guess_ein
На сайте с 10.07.2003
Offline
47
#5

Pilat, меня смутило: "импорт длился очень долго", поэтому решил, что тут скорее всего отрубили по таймауту или процесс сам отвалился. Так, что проблем может и не быть - просто настройки защиты такие.

T
На сайте с 19.12.2006
Offline
101
#6

добавьте в mysqldump параметр --tables имя_неполной_таблички

и сделайте дамп только ее

можно добавить --add-drop-table, чтобы эта табличка "освободила" под себя место в БД во время импорта

guess_ein
На сайте с 10.07.2003
Offline
47
#7

telemad, теже яйца только в профиль... Я предложил тоже самое, только не руками, а с помощью скрипта, который, в свою очередь, можно вызывать с помощью другого подставляя по ходу ему необходимое имя той/тех таблиц/ы. В общем это и есть правильное решение - сделать дамп недостающих таблиц. Автоматически или ручками выбирать ТС.

S
На сайте с 07.05.2007
Offline
20
#8

случайно не ругнулся на "Got a packet bigger than 'max_allowed_packet'" ?

если да - увеличьте значение директивы max_allowed_packet (по умолчанию 1048576) в /etc/my.cnf и перегрузите мускуль

S
На сайте с 09.10.2006
Offline
45
#9

Спасибо, всем откликнувшимся.

telemad:
добавьте в mysqldump параметр --tables имя_неполной_таблички

Вариант с импортом одной таблички не подходит. Это слишком долго.

Ошибка вылезла о не хватки памяти и нужно что-то около гига или вроде того. Памяти на сервере всего 2Гб, хостинг - дедик.

Мускл работает с таким конфигом:


[client]
max_allowed_packet = 32M
default-character-set = cp1251

[mysqld]
character-set-server = cp1251
binlog_cache_size = 1M
thread_stack = 192K
skip-innodb
skip-bdb
max_connections = 1000
table_cache = 10240
key_buffer = 384M
max_allowed_packet = 32M
sort_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 8M
myisam_sort_buffer_size = 64M
thread_cache_size = 8
query_cache_size = 32M
# Try number of CPU's*2 for thread_concurrency
thread_concurrency = 2

[mysqldump]
quick
max_allowed_packet = 16M

[mysql]
no-auto-rehash
# Remove the next comment character if you are not familiar with SQL
#safe-updates

[isamchk]
key_buffer = 256M
sort_buffer_size = 256M
read_buffer = 2M
write_buffer = 2M

[myisamchk]
key_buffer = 256M
sort_buffer_size = 256M
read_buffer = 2M
write_buffer = 2M

[mysqlhotcopy]
interactive-timeout

Отпишу ещё саппорту, т.к. проблема с долгим импортом меня совсем не радует.

guess_ein
На сайте с 10.07.2003
Offline
47
#10

slip, а на что ругается может скажите?

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий