Назад | Перейти на главную страницу

10-гигабайтный импорт базы данных MySql останавливается и не завершается

Я пытаюсь импортировать 10-гигабайтную базу данных в свою локальную установку mysql. Я использую Ubuntu 11.10. Я использую для этого командную строку.

mysql -u root -p database < database.backup.sql

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

Есть ли другой способ сделать это, при котором время ожидания сервера (или того, что он делает) не истекает?

войдите в другое окно mysql и введите, вы увидите, где он "застрял" ...

SHOW PROCESSLIST;

используя эту информацию, вы сможете настроить my.cnf и ускорить импорт.

Также взгляните на свой mysqld.log, убедитесь, что там все чисто, когда вы запускаете mysqld, это также даст вам указание, если что-то не так (например, поврежденный InnoDB).

Если это не вся одна таблица, вы можете разделить ее на несколько файлов и загрузить каждый из них в отдельный клиент (это будет работать быстрее, а также упростит изоляцию ошибки).

В зависимости от того, как структурирован файл, а также от структуры вашей базы данных, типа движка и т. Д., Вы можете получить огромный извлеките выгоду из заключения вашего импорта в транзакцию (или несколько).

На ум приходит конкретное веб-приложение. Программа установки просто выполнила сценарий .sql, состоящий из нескольких тысяч вставок. Это заняло ~ 2 минуты. Как только я заключил это в транзакцию, она выполнилась менее чем за секунду.