Возможна ли репликация с MySQL 5.5 master на 5.1 slave?
Короткая версия: Возможна ли репликация с 5.5 master на 5.1 slave?
Длинная версия: мы сделали масштабное обновление с 5.0 до 5.5. Это был долгий процесс, если выгрузить 400-гигабайтные базы данных и импортировать их в 5.5.
5.5 репликация, похоже, полностью сломана. Мастера постоянно зависают, ведомые устройства продолжают отключать / переподключаться и оставлять устаревшие соединения binlog_dump (видно из show processlist). Мастер зависает при отключении до тех пор, пока мне не придется убивать, когда отключение "сдается" через час. Наконец, он получает ошибку этого типа ежедневно "110423 13:55:48 [ОШИБКА] Подчиненный 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 мастер и 5,1 раб? Процесс миграции состоит в том, чтобы импортировать базу данных в 5.1 и затем включить репликацию, переключить всех на версию 5.1 после ее синхронизации, а затем понизить версию всех остальных серверов 5.5, пока все находятся на базе данных 5.1.
Будет ли 5.5 master -> 5.1 slave работать вообще? Если да, будет ли он работать с текущей репликацией в режиме MIXED? Должен ли я изменить это, чтобы быть только заявлением?
Спасибо!
2 ответа
То, что вы пытаетесь сделать, обычно не поддерживается. Цитата из документации о совместимости репликации между версиями MySQL:
MySQL поддерживает репликацию из одной основной версии в следующую более высокую версию. Например, вы можете выполнить репликацию с мастера, работающего под управлением MySQL 4.1, на подчиненное устройство под управлением MySQL 5.0, с мастера, работающего под управлением MySQL 5.0, на подчиненное устройство под управлением MySQL 5.1 и т. Д.
а также
Репликация от более новых мастеров к более старым рабам может быть возможной, но обычно не поддерживается.
Это может работать для тех версий, но это далеко от рекомендуемой установки. Мое мнение: не делай этого.
Также прочтите Обновление установки репликации
Другими словами, при обновлении до MySQL 5.5, ведомые должны быть MySQL 5.5, прежде чем вы сможете обновить мастер до 5.5.
(и, возможно, этот фрагмент, хотя я не думаю, что он имеет прямое отношение, если вы повторно импортируете в 5.1)
Понижение настройки репликации до предыдущей версии невозможно выполнить, если вы переключились с репликации на основе операторов на репликацию на основе строк и после того, как первый оператор на основе строк был записан в журнал.
Еще одна вещь, которую следует учитывать, это: размер пустого двоичного журнала
MySQL 5.5: 107 байт
MySQL 5.1: 106 байт
MySQL 5.0/4.x/3.x: 98 байт
Реплицироваться с более высокой версии на более низкую версию невозможно, поскольку информация заголовка смещена относительно того, что может прочитать более низкая версия.
Реплицирование с более низкой версии на более высокую версию возможно, потому что информация заголовка смещена за то, что может прочитать старшая версия.