Как синхронизировать базы данных сайта drupal с балансировкой нагрузки
У меня есть производственная среда, где мой сайт drupal размещен на двух серверах, сопоставленных с одним и тем же доменом, каждый с копией кода и базой данных, работающей на XAMPP. Так что в основном это две независимые организации.
Теперь у меня есть пользователи, которые обращаются к сайту через домен и делают обновления, которые отправляются на один из серверов, и я считаю, что синхронизация баз данных является реальной проблемой.
Какие у меня варианты? Есть ли способ "объединить" базы данных и сохранить все данные?
2 ответа
Вы можете решить эту проблему несколькими способами:
Используйте только один сервер базы данных. Отключите один сервер MySQL и подключите drupal на обоих серверах к одному серверу MySQL. Это не очень хорошее решение, если ваша база данных загружена.
Вы можете настроить мастер для репликации MySQL реплики. В этом сценарии вы сможете использовать оба сервера MySQL, и все обновления будут реплицированы на оба сервера MySQL. Это позволит сбалансировать нагрузку на базу данных MySQL без каких-либо изменений в коде drupal.
Вы можете использовать MySQL ведомого репликации. Здесь вы должны изменить код drupal, чтобы все обновления в базе данных выполнялись на главном сервере, а затем реплицировались на ведомый. Это хорошее решение, если у вас есть небольшое количество обновлений в базе данных, потому что это решение не может сбалансировать ввод и обновления в базе данных на обоих MySQL. Но репликация master-slave гораздо проще в настройке и обслуживании.
Вы можете настроить третий сервер только для базы данных MySQL и подключить оба сайта к одному и тому же серверу MySQL. Вы можете настроить веб-серверы на то, чтобы они были рабами главной базы данных только для целей резервного копирования.
Я думаю, что вам нужно посмотреть на репликацию master-master / multi-master. В этом случае оба сервера имеют базы данных, которые являются основными, и каждое обновление фиксируется в базе данных, а затем реплицируется в другую базу данных, обеспечивая синхронизацию баз данных.
http://en.wikipedia.org/wiki/Multi-master_replication
http://xeround.com/blog/2011/10/master-master-database-replication