У меня есть база данных mysql/innodb объемом 200 ГБ / 400Mrows - намного больше, чем разумно, как я выяснил.
Одна удивительная проблема — восстановление резервных копий. mysqldump создает огромные файлы sql, и им требуется около недели, чтобы импортировать их обратно в новую базу данных (попытки ускорить его, такие как большие/меньшие транзакции, отключение ключей во время импорта и т. д., сжатие сети и т. д. пока не увенчались успехом, импорт myisam кажется в 2 раза быстрее, но тогда не было бы транзакций).
Что еще хуже - и я надеюсь получить некоторую помощь в этом - сетевое соединение, которое передает> 200 ГБ в течение недели, имеет нетривиальную вероятность разрыва, и процесс импорта sql не может быть продолжен каким-либо нетривиальным способом.
Что было бы лучшим способом справиться с этим? Прямо сейчас, если я замечаю разорванное соединение, я вручную пытаюсь выяснить, когда оно закончилось, проверяя самый высокий первичный ключ последней импортированной таблицы, а затем использую perlscript, который в основном делает это:
perl -nle 'BEGIN{open F, "prelude.txt"; @a=<F>; print @a; close F;}; print if $x; $x++ if /INSERT.*last-table-name.*highest-primary-key/'
Это действительно не выход, так что было бы лучше всего?