Задавайте вопросы, мы ответим
Вы не зашли.
Доброе время суток!
Есть сервер на котором крутятся несколько баз.
Планируется поставить второй, настроить между ними репликацию.
Цель действия- обеспечить отказоустойчивость. Т.е.если падает мастер сервер- необходимо перенаправить все на слейв.
Вопрос- если мастер сервер падает, и все работает через слейв- каким образом потом синхронизировать данные с масетром, после его поднятия?
Неактивен
Вижу два варианта, один посложнее в настройке (и в поддержании), второй посложнее в действиях
при восстановлении.
«Вам какой?» ©
1. Посложнее в восстановлении. Просто при поднятии мастера сделать со слейва слепок, залить его
на мастер, и организовать репликацию «в обратную сторону».
2. Посложнее в настройке и поддержании. Сделать двустороннюю репликацию. Т.е. бинлоги с мастера
попадают на слейв, бинлоги со слейва — на мастер. Важно в этом случае — не допустить записи на
слейв, пока мастер жив (потому как иначе можете получить сложно вылечиваемые проблемы с
разъезжанием данных). В случае падения мастера — просто разрешить запись на слейв. И, когда мастер
поднимется, он сам нагонит реплику.
Кстати, наверное, второй вариант лучше, а для простоты поддержания на слейве, пока жив мастер,
можно включить глобально опцию --read-only.
Неактивен
Спасибо за ответ!
Первый конечно попроще.
Но второй поинтереснее.
Где можно найти статейку, как именно это сделать? Я имею ввиду второй вариант.
И при глобально установленной опцией read-only, репликация нормально проходить будет?
Неактивен
Сделать это не очень сложно, нужно на обеих машинках включить двоичные журналы и настроить
две репликации A->B и B->A, как будто другой репликации нету.
read-only не влияет на репликацию и на соединения под пользователем с привилегией SUPER
(например, root).
Неактивен