Готовый перевод 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

Настройки

Готово:

81.81% КП = 1.0

Непереведённые фрагменты будут пропущены.