Итак, я смотрю на настройку MySQL Replication в очень простой настройке master / slave. Мы рассматриваем это главным образом для отказа сервера, а не для аварийного восстановления, поэтому я в основном заинтересован в восстановлении после отказа. Все наши приложения написаны на PHP, поэтому я полагаю, что было бы довольно просто установить что-то в MySQL connect, чтобы, если основная база данных не могла быть подключена, мы записали файл и переключились на подчиненный и используйте это.
Моя проблема в том, каков наилучший способ повторной синхронизации этих данных после отработки отказа или если есть лучшее решение.
Сам отказоустойчивость должна быть автоматизирована, но процесс восстановления может быть ручным, и мы собираемся сделать это через WAN. Заранее спасибо за помощь
EDIT
После прочтения архитектур Master / Master vs. Master / Slave мне не совсем понятно, какая установка лучше всего подходит для моего сценария. Сами базы данных довольно большие (у меня нет точного размера в настоящее время) и представляют в основном данные транзакций / журналов (с небольшой проверкой подлинности и проверкой дубликатов). По большей части строки не будут изменены, только добавлены в базу данных.
Моей основной задачей / использованием реплицируемого сервера является аварийное переключение, поэтому, хотя репликация Master-Master кажется идеальной для этих целей, при чтении из них звучит так, как будто это происходит после аварийного переключения, и записи добавляются в базу данных B будет сложнее восстановить базу данных A, чем в отношениях Master-Slave.
Элементы не удаляются ни из одной базы данных, кроме как во время объединения / архивирования, и мы можем просто добавить функциональность, чтобы убедиться, что оба сервера доступны в это время для настройки Master / Slave. 15-20 минут времени восстановления могут быть нормальными в ситуации аварийного восстановления, когда происходило аварийное переключение, но не на постоянной ночной основе. Надеюсь, что они помогут внести ясность в ситуацию.