mysqldump для таблиц с более 20 млн. записей

kibi

Новичок
mysqldump для таблиц с более 20 млн. записей

Добрый день, подскажите пожалуйста, как получить дамп базы содержащей более 20 млн. записей...
пробовал через mysqldump - ругается
------
mysqldump: Out of memory (Needed 449020 bytes)
mysqldump: Got error: 2008: MySQL client run out of memory when retrieving data from server
------

Про то, чтобы вытянуть такое кол-во через php Admin - вообще молчу...
есть какие-то варианты...
при условии что я не имею доступа к серверу как админ - просто имею хостинг стандартный... с ФТР, доступом Телнет и т.п... ?



Спасибо
 

vovanium

Новичок
Можешь также дампер попробовать, 20 млн. правда не пробовал, но 4 млн. (около 600 МБ) отработал без проблем.
 

kibi

Новичок
Автор оригинала: vovanium
Можешь также дампер попробовать, 20 млн. правда не пробовал, но 4 млн. (около 600 МБ) отработал без проблем.
Проблемма в том, что у меня сейчас отключен доступ через http...
только SSH , FTP и все... можно ли как-то настроить \ сделать чтобы дамп создавался сразу с архивацией может ?

-~{}~ 15.04.05 17:57:

mysqldump -q мне выдает в консоль также дамп при -q
плохо....
 

betik

Новичок
настрой доступ к мускулу с другого хоста и попробуй дампером.
 

kibi

Новичок
Автор оригинала: Апельсин
ну так перенаправь вывод mysqldump

что значит при -q тоже плохо? таже ошибка или что?
Поставил -q
я так понимаю это "тихий" режим без показа что дампит команда... но у меня все равно выдавался в окне текст
 

SNiP

Новичок
Поставил -q
я так понимаю это "тихий" режим без показа что дампит команда...
-q -- don't buffer query, dump directly to stdout (man mysqldump)
но у меня все равно выдавался в окне текст
текст может выводиться в stdout и stderr, если ты перенаправил stdout в файл, тогда то что выдавалось в окне это stderr (ошибки, предупреждения, замечания), его тоже можно перенаправить, только конечно же в другой файл.
 

Апельсин

Оранжевое создание
Автор оригинала: kibi
Поставил -q
я так понимаю это "тихий" режим без показа что дампит команда... но у меня все равно выдавался в окне текст
Это не тихий режим. Это дамп построчно, специально для бампа больших таблиц.

--quick, -q

This option is useful for dumping large tables. It forces mysqldump to retrieve rows for a table from the server a row at a time rather than retrieving the entire row set and buffering it in memory before writing it out.
 

rudik

Developer
Параметр -e ускорит восстановление записей в таблице,
а -Q защитит от неожиданных сюрпризов в именах полей и таблиц.

Используй:

mysqldump -q -Q -e -p -u user_name db_name > ./dump.sql
 

kibi

Новичок
Автор оригинала: rudik
Параметр -e ускорит восстановление записей в таблице,
а -Q защитит от неожиданных сюрпризов в именах полей и таблиц.

Используй:

mysqldump -q -Q -e -p -u user_name db_name > ./dump.sql
Этот вариант оказался самым оптимальным...только я по логике поставил пароль после ввода юзера... ;)

mysqldump -q -Q -e -u имя -pпароль ДБ база > ./dump.sql
 

Лысый

Новичок
2 вопроса
1) дампит не в 1251 а в УТФ
как указать 1251?

2) нет ли соображений, как всё время менять имя файла ./dump.sql ? чтоб создавались новые файлы? ибо хочу периодически вызывать эту команду, чтоб в разные файлы дампилось

спасибо
 
Сверху