2011-10-10 3 views
0

Я импортирую db из большого файла mysqldump, файл составляет около 200 ГБ, после импорта в db отображаются только частичные таблицы, некоторые таблицы не были импортированы. Процесс не вызвал ошибок. вот команды:Импорт db из большого (200 ГБ) файла mysqldump

nohup mysql -uroot -ppass db_name <dumpfile.sql & 
+0

если вы запрограммировали его, не указав stdout/stderr на файл, откуда вы знаете, что на самом деле не было сделано никаких ошибок или предупреждений? – imm

+0

перенаправил вывод на nohup.out по умолчанию – user881480

+0

Любые причины, по которым вы делали это с nohup и &? Можете ли вы повторить это на экране? Можете ли вы проверить, что частичные таблицы завершены в этом файле dumpfile.sql? –

ответ

0

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

Предположим, что ваша БД называется MyTestDB

$ mysql -u<dbuser> -p<dbpass> -h<dbhost> MyTestDB -e "SHOW TABLES" > ./tablelist.txt 

Это создает файл списка таблиц в текущей директории Теперь дамп таблицы в папку с именем DBDump

$ for table in `cat ./tablelist.txt`; do echo $table; mysqldump -u<dbuser> -p<dbpass> -h<dbhost> MyTestDB $table > ./dbdump/$table.sql 

Аналогично импортировать его в db

$ for table in `cat ./tablelist.txt`; do echo $table; mysql -u<dbuser> -p<dbpass> -h<dbhost> MyTestDB < ./dbdump/$table.sql 
Смежные вопросы