Вы должны быть в состоянии вычислить эти числа до mysqldump.
Что касается настроек, которые вы дали в вопросе,
innodb_log_file_size=1G
Этот параметр СЛИШКОМ БОЛЬШОЙ !!!
innodb_log_file_size
Должен быть 25% отinnodb_buffer_pool_size
innodb_log_file_size = 128M
Как только вы установите это /etc/my.cnf
, вы должны сделать следующее, чтобы изменить размер ваших файлов журнала InnoDB:
service mysql stop
rm -f /var/lib/mysql/ib_logfile[01]
service mysql start
Что касается других настроек
innodb_log_buffer_size=1G
Вы никогда не захотите кэшировать тонну данных здесь, прежде чем отправлять их в файлы журналов InnoDB, особенно для перезагрузок mysqldump или тяжелых транзакций COMMIT. Значение должно быть на порядок меньше.
innodb_log_buffer_size=32M
Кстати, вы должны отключить бинарное ведение журнала перед перезагрузкой. В противном случае все данные попадают в ваши двоичные журналы. Пожалуйста, сделайте одно из следующего:
- Сделайте это ->
SET SQL_LOG_BIN=0;
первая строка файла mysqldump. - Из командной строки MySQL запустите,
SET SQL_LOG_BIN=0;
затем запуститеsource < mysqldumpfile >
- Закомментируйте log-bin
/etc/my.cnf
и перезапустите MySQL 5.1, загрузите файл mysqldump, раскомментируйте log-bin и перезапустите MySQL.
ОБНОВЛЕНИЕ 2011-07-24 20:30
Если у вас есть файл mysqldump /root/MyData.sql
, вы все равно можете выполнить такие команды
SET SQL_LOG_BIN=0; source /root/MyData.sql
Это подпадает под вариант 2.