Назад | Перейти на главную страницу

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

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

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

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

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

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

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

Думаю, я понял то, что вы пытаетесь сказать, но это означает, что на неисправном сервере нужно сделать «ИЗМЕНИТЬ МАСТЕРА НА master_host ..... Blahblah» с новым файлом журнала и позицией журнала », используя« Показать статус мастера » на сервере 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.