Медленный импорт большой базы данных Innodb в Amazon RDS с использованием mysqldump

Хорошо, я экспериментирую с Amazon RDS, и у меня возникает куча проблем со своевременной загрузкой базы данных InnoDB с помощью mysqldump.

Я пытаюсь получить свою локальную БД в облаке.

С использованием

mysqldump --single-transaction --opt -u root > file.sql

Я могу получить дамп (~ 1,5 ГБ) примерно за 3 минуты в свой локальный файл. Размер базы данных составляет около 4 ГБ, но mysqldump создает файл sql размером около 1,5 ГБ.

Когда я использую

mysqldump -h localhost -u XXXX -pXXXX DBNAME --compress --single-transaction --quick  --opt --order-by-primary| mysql --host=AMAZONHOSTNAME --user=username --password DBNAME

это займет вечность - я оцениваю, исходя из скорости, что это займет 5 часов.

Что касается моей пропускной способности, на www.speedtest.net я получаю скорость загрузки 0,67 Мбит/с.

Не могу понять, почему так долго. Я: а) сжимаю поток б) имею все параметры, которые требуются на форумах, а также документы Amazon в) имею БОЛЬШОЙ экземпляр на Amazon RDS.

Может ли кто-нибудь помочь мне здесь? Есть ли способ улучшить скорость?


person bagnap    schedule 15.01.2013    source источник
comment
Вы ограничены IOPS RDS. Если вы не используете подготовленный RDS, то, вероятно, у вас ужасное оборудование, и вы ограничены 300 IOPS (это число, которое я получил, когда в последний раз играл с RDS). Вы ничего не можете сделать, кроме как получить подготовленный RDS, который гарантирует 10 000 операций ввода-вывода в секунду.   -  person N.B.    schedule 15.01.2013
comment
Я не думаю, что это правильно - я только что перепроверил свой расчет пропускной способности - 1,5 ГБ при 0,67 мегабит в секунду (8 мегабит в мегабайт) займет 1500 * 8 / 0,67 = 17 910 секунд или / 60 или 4,9 часа, что я и испытываю. Я думаю, это моя пропускная способность?   -  person bagnap    schedule 15.01.2013


Ответы (1)


Я исправил это или, по крайней мере, значительно увеличил скорость.

Я добавил --compress в УДАЛЕННУЮ сторону команды mysqldump.

то есть это

mysqldump -h localhost -u XXXX -pXXXX DBNAME --compress --single-transaction --quick  --opt --order-by-primary| mysql --host=AMAZONHOSTNAME --user=username --password DBNAM

стал этим

mysqldump -h localhost -u XXXX -pXXXX DBNAME --compress --single-transaction --quick  --opt --order-by-primary| mysql --compress --host=AMAZONHOSTNAME --user=username --password DBNAM

Скорость передачи данных (измеряемая увеличением размера моей удаленной базы данных) увеличилась примерно с 13 МБ в минуту до примерно 73 МБ в минуту.

person bagnap    schedule 15.01.2013