← All posts tagged репликация

Balancer
MySQL репликация mariadb master-master Своеобразное первое крещение огнём. 6 дней назад отвалилась master-master MySQL репликация на вторичный сервер. Посколько он не используется, а я на выходных мотался на свадьбу к родственникам, то заметил это только вчера. Отставание от мастера превышало 400000+ секунд (5 суток), а время хранения бин-логов на сервере — 3 суток. Классическое решение в этом случае — mysqldump (или percona xtrabackup, что не сильно лучше и много сложнее) и возобновление репликации.

Поступил иначе. Возобновил репликацию с начала первого доступного файла бинлога, и провёл синхронизацию проблемных (по целостности внешних ключей) данных через pt-table-sync. Всё решилось онлайн, без простоев :)
Balancer
MySQL репликация Как при репликации в MySQL может вылезать Duplicate entry ошибка на запрос REPLACE? Оно же, млин, по определению должно удалять нафиг старое значение, если таковое найдётся. Ничего не понимаю. Но синхронизация баз данных на этом каждые несколько часов обламывается и требует ручного разруливания.
Balancer
epic_fail репликация lsyncd Всем хороша двухсторонняя репликация на lsyncd. Только стоит отмонтировать один двусторонне реплицируемый каталог, как lsync считает, что все файлы были грохнуты и удалят их на реплике. Стоит вернуть монтирование, как реплика, увидев удаление у себя, удаляет файлы и на мастере. umount, mount... И два синхронизированных каталога пусты. Сейчас приходится восстанавливать данные по кусочкам из бэкапов. Дело осложняется тем, что сама система реплицирования задумывалась как основной бэкап, планировалось только к этому ещё ежесуточный unison прикрутить для версионного бэкапа. Не успел :)

Balancer
MySQL репликация АвиаПорт Запустил на АвиаПорте master-master репликацию между основным и резервным сервером. Пока всё работает :)

А позавчера ещё запустил файловую двустороннюю синхронизацию через lsyncd. Не так оперативно работает, как через gluster, но зато читается на полной скорости.
Balancer
MySQL репликация Никогда, блин, при процессе безостановочного переноса живой БД с одного сервера на другой через репликацию не дропайте таблицу на мастере, предварительно не отключив репликацию :)

Итог — около получаса потерянных на форуме сообщений и час на восстановление из дампа при переносе…
Balancer
MySQL грабли репликация На всякий случай делюсь граблями. Не используйте при репликации изменение имени БД (replicate-rewrite-db). MySQL не подменяет имя БД во многих запросах (я, например, наступил на грабли ALTER TABLE ... ADD CONSTRAINT REFERENCES `DB-NAME`.`TABLE-NAME` ...) — вот на этом REFERENCES слейв и вылетал. Учитывая 2Гб объём и то, что с целью экспериментов репликацию с нуля пришлось поднимать трижды, сегодня часа два убил, пока разобрался. Пришлось на реплике имя БД делать такое же, как на мастере. Сейчас поднимается в 4-й раз :)
Balancer
MySQL репликация Есть. Боевой mysql-5.1 реплицируется на бэкапный mysql-5.6 в LXC-контейнере. Теперь с последнего можно будет попробовать гнать отложенную репликацию домой, для бэкапа и разработки :) Правда я, кажется, перемудрил. mysql-5.6 достаточно было дома поставить, ибо параметр задержки репликации задаётся на слейве. Пойду, что ли, домашнюю машину обновлять…
Balancer
MySQL репликация Захотел в MySQL отложенную репликацию. Ткнулся в поиск. Есть такое! Хорошая новость. Но есть и плохая. Оно только в 5.6.2 появилось. А в Gentoo пока последняя версия (и то ~arch) — mysql-5.5.28

Наверное, буду думать на тему костылей.
~~~