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 |
|
|
Ниже представлена последовательность действий, необходимых для запуска простейшей топологии, включающей один master и один slave сервера. nipman 29.10.13 в 14:47 |
||
|
1. Если репликация уже запущена, синхронизируйте оба сервера переведя их режим "только чтение". nipman 29.10.13 в 14:48 |
||
|
2. Остановите оба сервера. nipman 29.10.13 в 14:49 |
||
|
3. Запустите оба сервера, активировав бинарное логирование, GTID и отключив параметры небезопасные для GTID реплицикации. Оба сервера должны быть запущены в режиме "только чтение". На slave-сервере процессы ввода-вывода и SQL должны быть остановлены. nipman 29.10.13 в 14:51 |
||
|
Опции mysqld, необходимые для запуска и примеры их использования, подробно описаны далее в этом разделе. nipman 29.10.13 в 14:53 |
||
|
4. Включите авто-позиционирование на slave-сервере, и укажите что в качестве источника данных репликации он должен использовать master-сервер. Запустите slave-сервер. nipman 29.10.13 в 14:54 |
||
|
Последовательность SQL выражений, необходимых для выполнения этого шага описаны в этом разделе далее. nipman 29.10.13 в 14:55 |
||
|
5. Отключите режим "только чтение" на обоих сервера, для разрешения обновления данных. nipman 29.10.13 в 14:56 |
||
|
Давайте разберем более подробный пример. Предположим, что у нас есть 2 сервера уже сконфигурированные как slave и master с использованием классического файло-ориентированного протокола репликации. nipman 30.10.13 в 04:09 |
||
|
Большинство шагов необходимо производить от имени root-пользователя или иного другого пользователя MySQL, обладающего SUPER привилегией. Выполнение mysqladmin shutdown требует как SUPER так и SHUTDOWN привилегий. nipman 30.10.13 в 04:11 |
||
|
Шаг 1: Синхрониpуйте серверы. Переведите их в режим "только чтение". Для чего этого выполните следующую команду на обоих серверах: nipman 30.10.13 в 04:12 |
||
|
После этого дайте возможность slave-серверу дополучить последние обновления с master-севрера. Важно! Прежде чем приступить к следующему шагу, убедитесь, что slave-сервер получил все обновления. nipman 30.10.13 в 04:14 |
||
|
Шаг 2. Остановить оба сервера. Остановить оба сервера с помощью mysqladmin как показано ниже. Username - имя пользователя MySQL, обладающего правами для осуществления отключения сервера. nipman 30.10.13 в 04:16 |
||
|
После запуска команды потребуется ввод пароля пользователя. nipman 30.10.13 в 04:17 |
||
|
Шаг 3. Заново запустите оба сервера, включив GTID. Для включения бинарного логирования с использованием GTID должны быть соблюдены следующие условия: включены GTID-режим, бинарное логирование, логирование обновлений slave-сервера, кроме того должны быть отключены небезопасные для GTID-репликации опции. Дополнительно нужно ограничить возможные изменения на обоих серверах, запустив их в режиме "только чтение". Это значит, что mysqld_safe обоих серверов должны быть запущены со следующими параметрами: nipman 30.10.13 в 04:28 |
||
|
Примечание nipman 30.10.13 в 04:30 |
||
|
В дополнение к опциям указанным выше slave-сервер должен быть запущен с опцией --skip-slave-start. nipman 30.10.13 в 04:32 |
||
|
Может возникнуть ложное представление, что опция --gtid-mode относится к булевому типу, это не так (фактически это цифровое значение). Используйте только значения ON и OFF, работая с этой опцией. Использование цифровых значений может привести нежелательным последствиям. nipman 30.10.13 в 04:34 |
||
|
Для получения более подробной информации см. 16.1.4.5, “Опции и переменные для работы с глобальными идентификаторами транзакций”. nipman 30.10.13 в 04:36 |
||
|
В зависимости от обстоятельств, указанные выше опции mysqld_safe или mysqld сервиса могут быть дополнены по вашему усмотрению. nipman 30.10.13 в 04:37 |
||
|
Шаг 4. Укажите slave-серверу какой master-север использовать. Укажите slave-севреру использовать master-север в качестве источника реплицируемых данных в режиме GTID-ориентированной репликации в замен файло-ориентированного позиционирования. Это делается выраженим CHANGE MASTER TO на slave-сервере, с указанием опции MASTER_AUTO_POSITION, что сообшит slave-серверу о необходимости использования GTID для идентифицирования транзакций. nipman 30.10.13 в 04:42 |
||
|
Возможно потребуется дополнительно указать имя и пароль пользователя репликации, так же имени и номера порта master-сервера, которые будут использованы slave-сервером для подключения; Если эти значения уже были установлены на Шаге 1 и никаких дополнительных действий не требуется, эти опции могут быть опущены при выполнении приведенного ниже выражения. nipman 06.01.14 в 09:37 |
||
|
Ни опция 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 |
||
|
Убедившись что команда CHANGE MASTER TO успешно выполнена, можно запустить slave-репликацию: nipman 30.10.13 в 04:50 |
||
|
Шаг 5. Отключите режим "только чтение". Разрешите master-серверу принимать изменения выполнив следующее выражение: nipman 30.10.13 в 04:51 |
||
|
GTID-ориентированная репликация запущена и готова к приему изменений от master-сервера как и ранее. В разделе 16.1.3.3, “Использование GTID для аварийного переключения и масштабирования” рассматриваются вопросы инициализации новых slave-серверов с помощью GTID. nipman 30.10.13 в 04:53 |
