Spec-Zone .ru
спецификации, руководства, описания, API
|
Оглавление
Репликация позволяет данным от одного сервера базы данных MySQL (ведущее устройство) быть тиражированными в одни или более серверов баз данных MySQL (ведомые устройства). Репликация является асинхронной по умолчанию - ведомые устройства должны не к соединенному постоянно получить обновления от ведущего устройства. Это означает, что обновления могут произойти по дальним соединениям и даже по временным или неустойчивым соединениям, таким как служба автоматической телефонной связи. В зависимости от конфигурации можно тиражировать все базы данных, выбранные базы данных, или даже выбранные таблицы в пределах базы данных.
Для ответов на некоторые вопросы, которые те часто задают, кто плохо знаком с MySQL Replication, см. Раздел B.13, "FAQ MySQL 5.6: Репликация".
Целевое использование для репликации в MySQL включает:
Решения масштаба - распространение загрузки среди многократных ведомых устройств, чтобы улучшить производительность. В этой среде все записи и обновления должны иметь место на главном сервере. Чтения, однако, могут иметь место на одном или более ведомых устройствах. Эта модель может улучшить производительность записей (так как ведущее устройство выделяется обновлениям), существенно увеличивая скорость чтения через увеличивающееся число ведомых устройств.
Безопасность данных - потому что данные тиражируются в ведомое устройство, и ведомое устройство, может приостановить процесс репликации, возможно выполнить резервные службы на ведомое устройство, не повреждая соответствующие основные данные.
Аналитика - живые данные могут быть созданы на ведущем устройстве, в то время как анализ информации может иметь место на ведомом устройстве, не влияя на производительность ведущего устройства.
Дальнее распределение данных - если филиал хотел бы работать с копией Ваших основных данных, можно использовать репликацию, чтобы создать локальную копию данных для их использования, не требуя постоянного доступа к ведущему устройству.
Репликация в функциях MySQL поддерживает для односторонней, асинхронной репликации, в которой один сервер действует как ведущее устройство, в то время как один или более других серверов действуют как ведомые устройства. Это в отличие от синхронной репликации, которая является характеристикой MySQL Cluster (см. Главу 17, MySQL Cluster NDB 7.3). В MySQL 5.6 интерфейс к полусинхронной репликации поддерживается в дополнение к встроенной асинхронной репликации. С полусинхронной репликацией фиксация, выполняемая на основных блоках стороны прежде, чем возвратиться к сеансу, который выполнял транзакцию, пока, по крайней мере одно ведомое устройство не подтверждает, что получило и зарегистрировало события для транзакции. См. Раздел 16.3.8, "Полусинхронная Репликация" MySQL 5.6 также поддерживает задержанную репликацию так, что, ведомый сервер сознательно отстает от ведущего устройства, по крайней мере, указанным количеством времени. См. Раздел 16.3.9, "Задержанная Репликация".
Есть много решений, доступных для установки репликации между двумя серверами, но лучший метод, чтобы использовать зависит от присутствия данных и типов механизма, которые Вы используете. Для получения дополнительной информации по доступным параметрам см. Раздел 16.1.1, "Как Установить Репликацию".
Есть два базовых типа формата репликации, Оператор Основанная Репликация (SBR), который тиражирует все SQL-операторы, и Построчную репликацию (RBR), который тиражирует только измененные строки. Можно также использовать третье разнообразие, Смешанная Основанная Репликация (MBR). Для получения дополнительной информации по различным форматам репликации см. Раздел 16.1.2, "Форматы Репликации". В MySQL 5.6 основанный на операторе формат является значением по умолчанию.
MySQL 5.6.5 и позже поддерживает репликацию транзакций, основанную на глобальных идентификаторах транзакции (GTIDs). При использовании этого типа репликации не необходимо работать непосредственно с файлами журнала или позициями в пределах этих файлов, который значительно упрощает много общих задач репликации. Поскольку репликация, используя GTIDs является полностью транзакционной, непротиворечивость между ведущим устройством и ведомым устройством гарантируется, пока все транзакции, фиксировавшие на ведущем устройстве, были также применены на ведомое устройство. Для получения дополнительной информации о GTIDs и GTID-на-основе репликации, см. Раздел 16.1.3, "Репликация с Глобальными Идентификаторами транзакции".
Репликацией управляют через многие различные варианты и переменные. Они управляют базовой работой репликации, тайм-аутов, и баз данных и фильтров, которые могут быть применены на базы данных и таблицы. Для получения дополнительной информации по доступным параметрам см. Раздел 16.1.4, "Репликация и Двоичные Опции Журналирования и Переменные".
Можно использовать репликацию, чтобы решить много различных проблем, включая проблемы с производительностью, поддерживая резервное копирование различных баз данных, и как часть большего решения облегчить системные отказы. Для получения информации о том, как решить эти проблемы, см. Раздел 16.3, "Решения для Репликации".
Для примечаний и подсказок относительно того, как различные типы данных и операторы обрабатываются во время репликации, включая детали функций репликации, совместимость версии, обновления, и проблемы и их разрешение, включая FAQ, видит Раздел 16.4, "Примечания репликации и Подсказки".
Для получения дальнейшей информации на реализации репликации, как репликация работает, процесс и содержание двоичного журнала, фоновых потоков и правил, используемых, чтобы решить, как операторы записываются и репликация, см. Раздел 16.2, "Реализация Репликации".