Восстановление большого дампа mySLQ с помощью большого двоичного объекта - PullRequest
0 голосов
/ 07 февраля 2020

Я пытаюсь загрузить и восстановить очень большой mySQL дамп (> 40 ГБ), который также содержит большие двоичные двоичные объекты в таблицах. Я использую командную строку следующим образом:

curl 'https://url_from_doogle_dirve' -H ... --compressed | mysql --user=root --password=my-secret

Операция начинается, но примерно через 57 МБ я получаю следующую ошибку:

ERROR 2013 (HY000) at line 388: Lost connection to MySQL server during query

Я думаю, что я прочитал почти все темы об этой ошибке и перепробовал много решений, но, к сожалению, ни одна из них не работает для меня

вот мой файл mysqld.cnf (только соответствующая часть):

key_buffer_size         = 16M
max_allowed_packet      = 32M
thread_stack            = 192K
thread_cache_size       = 8

myisam-recover-options  = BACKUP

query_cache_limit       = 1M
query_cache_size        = 16M

log_error = /var/log/mysql/error.log

expire_logs_days        = 10
max_binlog_size   = 100M

net_write_timeout = 36000
net_read_timeout = 36000
innodb_buffer_pool_size = 32M
wait_timeout = 36000

Мне пришлось увеличить max_allowed_packet до 32MB, потому что с 16MB он ранее не работал с другой ошибкой, но теперь у меня есть этот новый ERROR 2013, который, похоже, связан с большим запросом / тайм-аутом. На самом деле, как указано выше, таблицы содержат двоичные двоичные объекты, размер которых может превышать 20/30 МБ каждый.

РЕДАКТИРОВАТЬ

Я также пытался загрузить sql файл локально, но я получаю тот же результат, поэтому он не имеет ничего общего с curl

MySQL 5.7.29 на Ubuntu Server 18.04.4

1 Ответ

0 голосов
/ 07 февраля 2020

Хорошо, я нашел проблему благодаря maria-db.

Я запускаю ту же команду на сервере mariadb вместо сервера mySQL, и у меня возникает та же проблема, но mariadb выдает мне более значимое сообщение об ошибке:

ERROR 1118 (42000) at line 388: The size of BLOB/TEXT data inserted in one transaction is greater than 10% of redo log size. Increase the redo log size using innodb_log_file_size.

Итак, я установил

innodb_log_file_size=256M

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

...