Использование реплицированного подчиненного сервера для запросов только для чтения для таких вещей, как создание отчетов, является обычной практикой.
Репликация на мастере читает из файла журнала и не затрагивает фактические таблицы базы данных. Репликация на главной стороне не выполняет никаких запросов, поэтому реальной нагрузки на базу данных нет.
Репликация имеет собственный поток на главном сервере, и пока он заблокирован, он не должен останавливать нормальную работу базы данных.
Репликация MySQL способна полностью восстановиться после сбоя и автоматически продолжится с того места, где она остановилась.
Есть одно предостережение. В MySQL 5.5+ MySQL поддерживает (по умолчанию отключено) полусинхронную репликацию, где запрос к базе данных на ведущем устройстве не будет отвечать клиенту до тех пор, пока ведомое устройство не подтвердит получение транзакции. Если время ожидания ответа подчиненного устройства истекло, MySQL вернется к асинхронной репликации. Когда будет определено, что ведомое устройство догнало его, оно снова попытается выполнить полусинхронную репликацию.
Это означает, что если вы запускаете запрос, который просто полностью тормозит подчиненный сервер, вы можете увидеть задержку до 10 секунд на главной стороне, но после этого ничего не должно влиять. Вы можете настроить время ожидания.
Кроме того, если все эти серверы используют одну и ту же пропускную способность сети, учтите, что возврат больших наборов результатов с любого сервера может вызвать проблемы, если вы достигнете максимальной пропускной способности вашей пропускной способности.
person
Marcus Adams
schedule
20.03.2014