Как синхронизировать базы данных MySQL в автономном режиме?

#mysql #mariadb #synchronization #maxscale

Вопрос:

Мое приложение, работающее на клиенте, использует базу данных MySQL, работающую на сервере. Таким образом, несколько клиентов подключены к одному и тому же серверу. Это хорошо работает, когда сервер находится в сети. Но теперь я хотел бы улучшить свое приложение, чтобы оно могло работать в автономном режиме.

                  -------------- 
                |              |
     -----------    SERVER      ---------- 
    |           |              |          |
    |            ------- ------           |
    |                   |                 | 
 ------ -------     ------- ------    ------- ------ 
|              |   |              |  |              |
|  Client 1    |   |  Client 2    |  |  Client X    |
|              |   |              |  |              |
 --------------     --------------    -------------- 
 

Теперь возникает проблема: что происходит, когда клиент находится в автономном режиме? Мне тоже нужна копия моей базы данных MySQL на каждом клиенте. По умолчанию приложение взаимодействует с MySQL на сервере. Если этот сервер недоступен (по какой причине: сервер отключен или у клиента нет подключения к Интернету), он должен использовать MySQL, запущенный на клиенте. Если соединение клиент/сервер снова доступно, базы данных должны быть синхронизированы автоматически.

Теперь мой вопрос: как этого добиться? Прежде всего, я проверил репликацию MySQL, но в моем сценарии у меня несколько «мастеров» и неизвестное количество клиентов. Поэтому я боюсь, что репликация-это не мое решение. Можно ли решить мою проблему с помощью MaxScale? Я никогда не работал с этим, так что я действительно ценю любую помощь.

Комментарии:

1. Давайте сначала уточним, используете ли вы mysql или mariadb! Нет, они не одно и то же, вопреки распространенному мнению.

2. @Shadow на сервере работает MySQL. MariaDB работает на клиентах. … Я знаю, что это не одно и то же 🙂

3. Вы напрашиваетесь на неприятности с этой установкой!

4. Предполагая, что на ваших клиентах работает сервер MariaDB, вам следует начать с выбора MySQL или MariaDB и преобразовать все экземпляры сервера в MySQL или MariaDB. Но даже если все серверы одинаковы (версия и поставщик) …. Я спрашиваю себя, относится ли этот вопрос к dba.stackexchange.com ?

5. Я согласен с @Luuk: если ваш вопрос касается настройки прокси-сервера базы данных, то этот вопрос здесь не по теме, так как это касается только вопросов, связанных с программным обеспечением. Дочерний сайт DBA SO занимается вопросами типа конфигурации. Но вы действительно должны использовать одни и те же продукты базы данных, вплоть до второстепенного номера версии на клиенте и сервере.