Существуют сотни клиентов, которые будут использовать систему Windows, в которой они управляют своей собственной информацией.Эта информация отправляется на сервер для анализа (веб-система).
И клиенты, и сервер будут иметь одинаковую структуру базы данных.Есть некоторые таблицы, которые будут обновляться через Windows-клиенты и другие таблицы через веб-систему.Немногие из таблиц могут быть обновлены в обоих.
Проблема заключается в том, что нам необходимо синхронизировать эти базы данных.Текущий подход заключается в том, чтобы хранить в таблице все операторы «INSERT, UPDATE, DELETE» и один раз в день обновлять клиентов (при открытии) и сервер (при закрытии).
Мне не нравится текущий подход, так как я думаю, что он не очень безопасен (даже если мы используем надежное шифрование данных), и я считаю, что есть лучший способ сделать это.
Я только что перешел на использование MariaDB и читал об Aria Storage Engine:
Aria может воспроизводить практически все из журнала.(Включая создание / удаление / переименование / усечение таблиц).Поэтому вы делаете резервную копию Aria, просто копируя журнал.
Вопросы:
Как вы думаете, возможно лииспользовать Aria Logging для решения моей проблемы (чем это отличается от текущего подхода)?
Кто-нибудь имеет опыт работы с подобным случаем (синхронизация с несколькими клиентами)?
У меня просто есть опыт работы с MyISAM и InnoDB ... есть ли другой механизм хранения, который мог бы быть лучше для этого случая?
### ОБНОВЛЕНИЕ (2 июля) ###
Я исследовал возможность использования бинарников MySQL и их автоматической репликации.ИМХО, этот метод идеален для тех случаев, когда данные сервера точно такие же, как у клиентов.Механизм хранения BLACKHOLE можно использовать для синхронизации только определенных таблиц (что может быть очень полезно).В моем случае сервер и клиенты имеют одинаковую структуру, НО они не имеют одинаковых данных.Другими словами, сервер содержит все данные клиента, и каждый клиент имеет свой собственный набор данных (сохраняя ту же структуру).
При попытке применить автоматическую репликацию MySQL потребуется на сервере база данных дляклиент, что делает его более сложным.
Я думаю, что я буду придерживаться первоначального плана, поскольку он дает мне возможность легко запрашивать изменения для каждого клиента (пока я не нашел более хороший способ сделать это).