Готовый перевод Mysql 5.6: Replication with Global Transaction Identifiers / Репликация с помощью глобальных идентификаторов транзакций: 16.1.3.2. Настройка репликации с помошью GTID
Этот раздел описывает процесс настройки и запуска репликации с использованием GTID в MySQL 5.6. Описывается процесс "холодного старта", т.е. предполагается что master-сервер запускается впервые и что есть возможность его остановить; о том как проинициализировать новый slave-сервер для master-сервера находящегося в эксплуатации см. 16.1.3.3, “Применение GTID для аварийного переключения и масштабирования”.
Ниже представлена последовательность действий, необходимых для запуска простейшей топологии, включающей один master и один slave сервера.
1. Если репликация уже запущена, синхронизируйте оба сервера переведя их режим "только чтение".
2. Остановите оба сервера.
3. Запустите оба сервера, активировав бинарное логирование, GTID и отключив параметры небезопасные для GTID реплицикации. Оба сервера должны быть запущены в режиме "только чтение". На slave-сервере процессы ввода-вывода и SQL должны быть остановлены.
Опции mysqld, необходимые для запуска и примеры их использования, подробно описаны далее в этом разделе.
4. Включите авто-позиционирование на slave-сервере, и укажите что в качестве источника данных репликации он должен использовать master-сервер. Запустите slave-сервер.
Последовательность SQL выражений, необходимых для выполнения этого шага описаны в этом разделе далее.
5. Отключите режим "только чтение" на обоих сервера, для разрешения обновления данных.
Давайте разберем более подробный пример. Предположим, что у нас есть 2 сервера уже сконфигурированные как slave и master с использованием классического файло-ориентированного протокола репликации.
Большинство шагов необходимо производить от имени root-пользователя или иного другого пользователя MySQL, обладающего SUPER привилегией. Выполнение mysqladmin shutdown требует как SUPER так и SHUTDOWN привилегий.
Шаг 1: Синхрониpуйте серверы. Переведите их в режим "только чтение". Для чего этого выполните следующую команду на обоих серверах:
После этого дайте возможность slave-серверу дополучить последние обновления с master-севрера. Важно! Прежде чем приступить к следующему шагу, убедитесь, что slave-сервер получил все обновления.
Шаг 2. Остановить оба сервера. Остановить оба сервера с помощью mysqladmin как показано ниже. Username - имя пользователя MySQL, обладающего правами для осуществления отключения сервера.
После запуска команды потребуется ввод пароля пользователя.
Шаг 3. Заново запустите оба сервера, включив GTID. Для включения бинарного логирования с использованием GTID должны быть соблюдены следующие условия: включены GTID-режим, бинарное логирование, логирование обновлений slave-сервера, кроме того должны быть отключены небезопасные для GTID-репликации опции. Дополнительно нужно ограничить возможные изменения на обоих серверах, запустив их в режиме "только чтение". Это значит, что mysqld_safe обоих серверов должны быть запущены со следующими параметрами:
Примечание
В версиях MySQL предшествующих 5.6.9 Опция --enforce-gtid-consistency имела другое название, а именно --disable-gtid-unsafe-statements.
В дополнение к опциям указанным выше slave-сервер должен быть запущен с опцией --skip-slave-start.
Может возникнуть ложное представление, что опция --gtid-mode относится к булевому типу, это не так (фактически это цифровое значение). Используйте только значения ON и OFF, работая с этой опцией. Использование цифровых значений может привести нежелательным последствиям.
Для получения более подробной информации см. 16.1.4.5, “Опции и переменные для работы с глобальными идентификаторами транзакций”.
В зависимости от обстоятельств, указанные выше опции mysqld_safe или mysqld сервиса могут быть дополнены по вашему усмотрению.
Шаг 4. Укажите slave-серверу какой master-север использовать. Укажите slave-севреру использовать master-север в качестве источника реплицируемых данных в режиме GTID-ориентированной репликации в замен файло-ориентированного позиционирования. Это делается выраженим CHANGE MASTER TO на slave-сервере, с указанием опции MASTER_AUTO_POSITION, что сообшит slave-серверу о необходимости использования GTID для идентифицирования транзакций.
Возможно потребуется дополнительно указать имя и пароль пользователя репликации, так же имени и номера порта master-сервера, которые будут использованы slave-сервером для подключения; Если эти значения уже были установлены на Шаге 1 и никаких дополнительных действий не требуется, эти опции могут быть опущены при выполнении приведенного ниже выражения.
Ни опция MASTER_LOG_FILE ни MASTER_LOG_POS не могут быть использованы совместно с опцией MASTER_AUTO_POSITION равной 1. Попытка запустить CHANGE MASTER TO в такой конфигурации приведет к ошибке. (Для возврата к файло-ориентированному реплицированию следует выполнить CHANGE MASTER TO с опциями MASTER_AUTO_POSITION = 0, указав актуальные MASTER_LOG_FILE и MASTER_LOG_POS)
Убедившись что команда CHANGE MASTER TO успешно выполнена, можно запустить slave-репликацию:
Шаг 5. Отключите режим "только чтение". Разрешите master-серверу принимать изменения выполнив следующее выражение:
GTID-ориентированная репликация запущена и готова к приему изменений от master-сервера как и ранее. В разделе 16.1.3.3, “Использование GTID для аварийного переключения и масштабирования” рассматриваются вопросы инициализации новых slave-серверов с помощью GTID.
Внимание! Этот перевод, возможно, ещё не готов.
Его статус: идёт перевод
Переведено на Нотабеноиде
http://notabenoid.org/book/45231/179643
Переводчики: nipman
Настройки
Готово:
