Краткая версия: возможна ли репликация с главного устройства 5.5 на подчиненное устройство 5.1?
Длинная версия: мы провели масштабное обновление с 5.0 до 5.5. Это был долгий процесс, если выгрузить 400 ГБ БД и импортировать их в 5.5.
5.5 репликация вроде полностью сломана. Ведущие устройства постоянно зависают, ведомые устройства продолжают отключение / повторное подключение и оставляют устаревшие соединения binlog_dump (видимые из списка процессов show). Мастер зависает при выключении до тех пор, пока мне не придется убивать, когда выключение "сдает" через час. Наконец, он ежедневно получает ошибку этого типа: 110423 13:55:48 [ERROR] Slave SQL: не удалось выполнить событие Delete_rows для таблицы prod.site_iplist; не удалось найти запись в 'site_iplist', Error_code: 1032; ошибка обработчика HA_ERR_KEY_NOT_FOUND; главный журнал событий mysql-bin.000385, end_log_pos 65644796, Error_code: 1032 ", что является ошибкой, которая будет исправлена в 5.5.12.
Это очень разочаровало, поскольку наша установка 5.0 работала нормально в течение 3 лет.
В любом случае, я собираюсь перейти на версию 5.1.56 (которая содержит как минимум 56 обновлений стабильного продукта). Проблема в том, что все мои базы данных теперь 5.5.
Возможно ли иметь 5.5 master и 5.1 slave? Процесс миграции заключается в том, чтобы импортировать базу данных в 5.1, а затем включить репликацию, переключить всех на 5.1 после синхронизации и затем понизить версию всех остальных серверов 5.5, пока все находятся на базе 5.1.
Будет ли 5.5 master -> 5.1 slave вообще работать? Если да, будет ли он работать с текущей репликацией в СМЕШАННОМ режиме? Придется ли мне изменить это только на утверждение?
Спасибо!
То, что вы пытаетесь сделать, обычно не поддерживается. Цитата из Совместимость репликации между версиями MySQL документы:
MySQL поддерживает репликацию от одной основной версии к следующей более высокой основной версии. Например, вы можете выполнить репликацию с ведущего устройства, работающего под управлением MySQL 4.1, на ведомое устройство, работающее под управлением MySQL 5.0, с ведущего устройства, работающего с MySQL 5.0, на ведомое устройство, работающее под управлением MySQL 5.1, и так далее.
и
Репликация от новых мастеров к старым подчиненным возможна, но обычно не поддерживается.
Это может работать для этих версий, но это далеко не рекомендуемая настройка. Мое мнение: не делай этого.
Также прочтите Обновление настройки репликации
Другими словами, при обновлении до MySQL 5.5 ведомые устройства должны быть MySQL 5.5, прежде чем вы сможете обновить ведущее устройство до 5.5.
(и, возможно, этот фрагмент, хотя я не думаю, что он имеет прямое отношение к повторному импорту в 5.1)
Понижение настройки репликации до предыдущей версии невозможно после того, как вы переключились с репликации на основе операторов на репликацию на основе строк и после того, как первый оператор на основе строк был записан в binlog.
Еще одна вещь, которую следует учитывать: Размер пустого двоичного журнала
MySQL 5.5: 107 байт
MySQL 5.1: 106 байт
MySQL 5.0 / 4.x / 3.x: 98 байт
Репликация из более высокой версии в более низкую версию невозможна, поскольку информация заголовка смещена по сравнению с тем, что может прочитать более низкая версия.
Репликация из более низкой версии в более высокую версию возможна, потому что информация заголовка смещена относительно того, что может прочитать высокая версия.