Мастер-Мастер репликации как догнать синхронизацию при выключении

Для работы я должен был установить репликацию master-master на 2 серверах ( raspberry pi 3 debian), что я и сделал, и это работает, но теперь я пришел к вопросу о том, почему мы устанавливаем реплики в месте 1srt: Сервер 1 является главным мастером, а сервер 2 должен быть резервным на тот случай, если сервер 1 отключится по причине X, а клиенты все равно будут иметь доступ к базе данных и будут продолжать запись в нее.

Но что происходит, когда сервер 1 восстанавливается и перезапускается? Будет ли он автоматически синхронизироваться с сервером 2 (который теперь содержит больше информации, таблиц и т. Д.), Нужно ли мне писать команды, чтобы синхронизировать его и получать все недостающие данные?

Зная, что база данных составляет около 20 000 000 строк кода и имеет большой объем, я не могу просто сделать это вручную, и мне нужно, чтобы это было автоматически или, по крайней мере, создать какой-то сценарий, который сможет синхронизировать все данные за раз, а не строку за строкой.,

Я не профессионал в Linux, я только начал работать над этим в октябре прошлого года, поэтому некоторые концепции довольно размыты для меня

Спасибо за помощь!

2 ответа

Спасибо за Ваш ответ!

Я думаю, что я понимаю, что вы пытаетесь сказать, но это означает, что на неисправном сервере нужно сделать " CHANGE MASTER TO master_host.....Blahblah " с новым лог-файлом и log pos "с помощью"Show master status" на сервере 2, который имеет дополнительный контент?

И это должно вызвать синхронизацию неисправного сервера 1 на сервере 2?

Потому что я пытался смоделировать отключение сервера 1 с помощью " sudo shutdown -h now "

затем добавить некоторые данные в уже существующую таблицу.

Затем я перезапустил сервер 1, и тут начинаются проблемы:

Сначала мое расширение MySQLi php исчезло, мне пришлось переустановить его, потому что я больше не мог иметь доступ к phpmyadmin (не знаю почему, может быть, выключение стерло его)

и когда я сделал "Показать статус ведомого \G; " на неисправном сервере 1, он сказал:

Last_Errno: 1 Last_Errno: BlahBlah ", цитируя то, что я добавил на сервере 2 во время выключения, указывая на него.

И эти два больше не синхронизировались, но в этом ( http://msutic.blogspot.fr/2015/02/mariadbmysql-master-master-replication.html) учебном пособии, за которым я следовал, было сказано, что оно будет догонять себя при перезапуске.

Поэтому я удалил то, что добавил, и сделал остановку ведомого / Смена мастера на / запуск ведомого на неисправном сервере 1, но мне все равно пришлось удалить добавленные данные, так что это было совсем не то, что я хотел...

Стандартная репликация в основном автоматическая, поэтому, если главный / подчиненный остановлен на короткое время, должно быть достаточно журналов для синхронизации остановленного сервера с работающим сервером. Это зависит от того, как долго сервер останавливается для скорости изменения ваших данных, насколько велики ваши двоичные журналы и как долго вы их храните. В худшем случае лучшим решением всегда является создание дампа и повторная синхронизация, но вы можете довольно быстро это определить, посмотрев на SHOW SLAVE STATUS,

Другие вопросы по тегам