MySQL репликация и о человека-днях вообще
Jul. 1st, 2010 02:39 pmПару дней назад попросили запустить в Израиле реплику американского сервера. И поинтересовались, сколько времени займет. Меня так и тянуло ответить - сегодня-завтра будет готово. Но удержался и сказал - неделю. А надо было сказать "две" - всякий случай.
База - 80GB. Остановил, скопировал файлы - полчаса. Начал компрессировать gzip - заняло несколько часов. Получилось 16GB. Начал копировать на израильский сервер - scp предсказал, что перенос займет часов 30. Решил ужать 7z. Выбрал максимальную компрессию - работало настолько медленно, что я остановил и перезапустил со средней компрессией. Через пару часов получил файл 11GB. Через сутки файл дополз до израильского сервера.
Разархивировал, стартовал slave server. Вскоре обнаружил, что репликация упала - "duplicate key". Добавил игнорирование этой ошибки, стер базу, разархивировал, запустил.
Упало снова через пару часов - на этот раз сказало, что отсутствует таблица. Я-то был уверен, что все таблицы myisam, а одна таки оказалась innodb, и соответствующие файлы я не скопировал. Стер, разархивировал, запустил. Много часов бежало без проблем. И упало - говорит, отсутствует stored procedure. Я как-то позабыл, что они хранятся не в файлах "моей" БД, а в системной БД. Стер, разархивировал, импортировал procedure, запустил. Жду....
Весь этот скучный рассказ к тому, что нельзя забывать старую добрую формулу (кажется, из The Mythical Man-Month) - предсказанный срок выполнения надо умножить на два и "увеличить" единицу измерения. Т.е. вместо пару часов получаются четыре дня, а вместо одного дня - две недели.
Оптовые закупки стройматериалов: тепло пол. Вилла в Черногории Добра Вода.