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 для аварийного переключения и масштабирования”.

nipman 29.10.13 в 14:45

0

Ниже представлена последовательность действий, необходимых для запуска простейшей топологии, включающей один master и один slave сервера.

nipman 29.10.13 в 14:47

0

1. Если репликация уже запущена, синхронизируйте оба сервера переведя их режим "только чтение".

nipman 29.10.13 в 14:48

0

2. Остановите оба сервера.

nipman 29.10.13 в 14:49

0

3. Запустите оба сервера, активировав бинарное логирование, GTID и отключив параметры небезопасные для GTID реплицикации. Оба сервера должны быть запущены в режиме "только чтение". На slave-сервере процессы ввода-вывода и SQL должны быть остановлены.

nipman 29.10.13 в 14:51

0

Опции mysqld, необходимые для запуска и примеры их использования, подробно описаны далее в этом разделе.

nipman 29.10.13 в 14:53

0

4. Включите авто-позиционирование на slave-сервере, и укажите что в качестве источника данных репликации он должен использовать master-сервер. Запустите slave-сервер.

nipman 29.10.13 в 14:54

0

Последовательность SQL выражений, необходимых для выполнения этого шага описаны в этом разделе далее.

nipman 29.10.13 в 14:55

0

5. Отключите режим "только чтение" на обоих сервера, для разрешения обновления данных.

nipman 29.10.13 в 14:56

0

Давайте разберем более подробный пример. Предположим, что у нас есть 2 сервера уже сконфигурированные как slave и master с использованием классического файло-ориентированного протокола репликации.

nipman 30.10.13 в 04:09

0

Большинство шагов необходимо производить от имени root-пользователя или иного другого пользователя MySQL, обладающего SUPER привилегией. Выполнение mysqladmin shutdown требует как SUPER так и SHUTDOWN привилегий.

nipman 30.10.13 в 04:11

0

Шаг 1: Синхрониpуйте серверы. Переведите их в режим "только чтение". Для чего этого выполните следующую команду на обоих серверах:

nipman 30.10.13 в 04:12

0

После этого дайте возможность slave-серверу дополучить последние обновления с master-севрера. Важно! Прежде чем приступить к следующему шагу, убедитесь, что slave-сервер получил все обновления.

nipman 30.10.13 в 04:14

0

Шаг 2. Остановить оба сервера. Остановить оба сервера с помощью mysqladmin как показано ниже. Username - имя пользователя MySQL, обладающего правами для осуществления отключения сервера.

nipman 30.10.13 в 04:16

0

После запуска команды потребуется ввод пароля пользователя.

nipman 30.10.13 в 04:17

0

Шаг 3. Заново запустите оба сервера, включив GTID. Для включения бинарного логирования с использованием GTID должны быть соблюдены следующие условия: включены GTID-режим, бинарное логирование, логирование обновлений slave-сервера, кроме того должны быть отключены небезопасные для GTID-репликации опции. Дополнительно нужно ограничить возможные изменения на обоих серверах, запустив их в режиме "только чтение". Это значит, что mysqld_safe обоих серверов должны быть запущены со следующими параметрами:

nipman 30.10.13 в 04:28

0

Примечание
В версиях MySQL предшествующих 5.6.9 Опция --enforce-gtid-consistency имела другое название, а именно --disable-gtid-unsafe-statements.

nipman 30.10.13 в 04:30

0

В дополнение к опциям указанным выше slave-сервер должен быть запущен с опцией --skip-slave-start.

nipman 30.10.13 в 04:32

0

Может возникнуть ложное представление, что опция --gtid-mode относится к булевому типу, это не так (фактически это цифровое значение). Используйте только значения ON и OFF, работая с этой опцией. Использование цифровых значений может привести нежелательным последствиям.

nipman 30.10.13 в 04:34

0

Для получения более подробной информации см. 16.1.4.5, “Опции и переменные для работы с глобальными идентификаторами транзакций”.

nipman 30.10.13 в 04:36

0

В зависимости от обстоятельств, указанные выше опции mysqld_safe или mysqld сервиса могут быть дополнены по вашему усмотрению.

nipman 30.10.13 в 04:37

0

Шаг 4. Укажите slave-серверу какой master-север использовать. Укажите slave-севреру использовать master-север в качестве источника реплицируемых данных в режиме GTID-ориентированной репликации в замен файло-ориентированного позиционирования. Это делается выраженим CHANGE MASTER TO на slave-сервере, с указанием опции MASTER_AUTO_POSITION, что сообшит slave-серверу о необходимости использования GTID для идентифицирования транзакций.

nipman 30.10.13 в 04:42

0

Возможно потребуется дополнительно указать имя и пароль пользователя репликации, так же имени и номера порта master-сервера, которые будут использованы slave-сервером для подключения; Если эти значения уже были установлены на Шаге 1 и никаких дополнительных действий не требуется, эти опции могут быть опущены при выполнении приведенного ниже выражения.

nipman 06.01.14 в 09:37

0

Ни опция 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)

nipman 30.10.13 в 04:49

0

Убедившись что команда CHANGE MASTER TO успешно выполнена, можно запустить slave-репликацию:

nipman 30.10.13 в 04:50

0

Шаг 5. Отключите режим "только чтение". Разрешите master-серверу принимать изменения выполнив следующее выражение:

nipman 30.10.13 в 04:51

0

GTID-ориентированная репликация запущена и готова к приему изменений от master-сервера как и ранее. В разделе 16.1.3.3, “Использование GTID для аварийного переключения и масштабирования” рассматриваются вопросы инициализации новых slave-серверов с помощью GTID.

nipman 30.10.13 в 04:53

0
Минутку...