Импорт большой БД в MySQL

12
Socionics
На сайте с 17.06.2006
Offline
209
#11

Sypex Dumper попробуйте.

На 4 гигабайтных базах мне помогало, когда по ssh падала загрузка.

Может и на 15 гиговых сработает.

Jake Foley
На сайте с 16.08.2008
Offline
151
#12
edogs:
1)
Если версии mysql более или менее совпадают, то
а) останавливаете базу там и там
б) ищите директории с данными баз там и там ( файлы myd,frm,myi ), обычно в районе /usr/local/mysql/data но возможны варианты
в) копируете
г) запускаете мускул, на всякий случай делаете проверку таблиц.

Запустил мускул, сделал проверку таблиц, выдало полно ошибок

Error : Table 'parts.ARTICLE_LIST_CRITERIA' doesn't exist
status : Operation failed
parts.ART_COUNTRY_SPECIFICS
Error : Table 'parts.ART_COUNTRY_SPECIFICS' doesn't exist
status : Operation failed
parts.ART_LOOKUP
Error : Table 'parts.ART_LOOKUP' doesn't exist
status : Operation failed
parts.AXLES
Error : Table 'parts.AXLES' doesn't exist
status : Operation failed

Sypex Dumper пробовал для экспорта БД - зависал.

Кажется единственный вариант, это все же командой mysql :(

ХЧ
На сайте с 27.06.2014
Offline
26
#13
Jake Foley:
Приветствую,

Вопрос такой:

Есть sql база размером 15гб. Импорт на слабеньком сервере очень долго занимает времени (ssh mysql)

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

Дайте пожалуйста наводку

Если у Вас charset не UTF8, то замените на свой,

1) Дампим, чтобы сразу получить сжатый формат пропускаем через пайп и заварачиваем в gzip, которых сохранить уже сжайтый sql на диске под именем my_super_database-02.05.2015.sql.gz

==============================================================================

mysqldump БАЗА_ДАННЫХ --default-character-set=utf8 -u root "-pПАРОЛЬ" | gzip - > /root/my_super_database-02.05.2015.sql.gz

2) Далее при поможи ssh пакета, вытаскиваем базу с сервака на локальную машину (у Вас линкус?):

====================================================================

scp root@ВАШ_IP_АДРЕС:/root/my_super_database-02.05.2015.sql.gz .

(не пропустите точку на конце выше строчкой, это цель - куда будет идти копирование - в текущий каталог)

3) На локальной машине создаем базу данных МОЯ_СУПЕР_БАЗА_ДАННЫХ и пользователя и даем права на подключения пользователя к базе данных (это легко и Вы сможете прочесть все в руководстве как это сделать)

4) Вставляем sql в созданную только что базу данных под созданным юзером:

================================================================

zcat my_super_database-02.05.2015.sql.gz | mysql МОЯ_СУПЕР_БАЗА_ДАННЫХ -u МОЙ_ПОЛЬЗОВАТЕЛ_MYSQL '-pПАРОЛЬ_ЭТОГО_ПОЛЗОВАТЕЛЯ'

Все, после этого у Вас в базе данных МОЯ_СУПЕР_БАЗА_ДАННЫХ на локальной машине есть база данных, которую Вы сдампили с сервака.

P.S. Я описал как это сделать в Linux. Под виндой как-то тоже должно быть примерно так. Главное сожмите бэкап через gzip если Вы не далаете сжатие как это показал я при дампе. Иначе все 15GB будите тащить по сети без сжатия.

Jake Foley
На сайте с 16.08.2008
Offline
151
#14
ХорошийЧеловек:
Главное сожмите бэкап через gzip если Вы не далаете сжатие как это показал я при дампе. Иначе все 15GB будите тащить по сети без сжатия.

Стянул 15 гб за 10 минут это не проблема.

В остальном процесс же идентичен и никак не ускоривает выполнение импорта

mysql -u 123 p123 123 < dump.sql

edogs software
На сайте с 15.12.2005
Offline
775
#15
Jake Foley:
Запустил мускул, сделал проверку таблиц, выдало полно ошибок

doesn't exists - или не туда скопировали или права не так расставили. Перепроверьте эти моменты.

Jake Foley:
Кажется единственный вариант, это все же командой mysql :(

В принципе 15гб не так много, пока топик существует - уже бы завершился импорт. Но если надо будет регулярно или вдруг какие ошибки - то замучаетесь потом.

Jake Foley, вариант ускорения mysql - скопируйте сначала структуру таблиц, а перед заливкой данных убейте индексы, именно убейте, а не отключайте и т.д.. Потом после быстрой заливки снова накатите.

Разработка крупных и средних проектов. Можно с криптой. Разумные цены. Хорошее качество. Адекватный подход. Продаем lenovo legion в спб, дешевле магазинов, новые, запечатанные. Есть разные. skype: edogssoft
S
На сайте с 23.05.2004
Offline
315
#16

Можно попробовать так:

mysql -u 123 p123 123

SET foreign_key_checks = 0;

source dump.sql;

SET foreign_key_checks = 1;

Это просто подпись.
Jake Foley
На сайте с 16.08.2008
Offline
151
#17
edogs:
doesn't exists - или не туда скопировали или права не так расставили. Перепроверьте эти моменты.

В принципе 15гб не так много, пока топик существует - уже бы завершился импорт. Но если надо будет регулярно или вдруг какие ошибки - то замучаетесь потом.

Jake Foley, вариант ускорения mysql - скопируйте сначала структуру таблиц, а перед заливкой данных убейте индексы, именно убейте, а не отключайте и т.д.. Потом после быстрой заливки снова накатите.

Спасибо за советы, в следующий раз так и поступлю, а пока начал (утром) заливку по новой, только 6 гб залилось.

Наберусь терпения 🍿

M
На сайте с 30.08.2010
Offline
92
#18
VK
На сайте с 29.12.2011
Offline
42
#19

Авторизуйтесь в mysql, дальше

source /путь/к/файлу/дампа

Бывает так импортируется быстрее.

---------- Добавлено 08.05.2015 в 18:57 ----------

Авторизуйтесь в mysql, дальше

source /путь/к/файлу/дампа

Бывает так импортируется быстрее.

12

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