16.1.2.5 Настройка реплик
В следующих разделах описывается настройка реплик. Прежде чем продолжить, убедитесь, что у вас есть:
Настроенный источник с необходимыми свойствами конфигурации. См. Раздел 16.1.2.1, «Настройка конфигурации источника репликации».
Информация о состоянии источника или копия файла индекса бинарного журнала источника, созданная во время остановки для снимка данных. См. Раздел 16.1.2.3, «Получение координат бинарного журнала источника репликации».
-
На источнике, разблокируйте чтение:
mysql>
UNLOCK TABLES;
16.1.2.5.1 Настройка конфигурации реплики
Каждая реплика должна иметь уникальный идентификатор сервера, как указано в системной переменной server_id. Если вы настраиваете несколько реплик, каждая из них должна иметь уникальное значение server_id, отличное от значения источника и любой другой реплики. Если идентификатор сервера реплики не задан или текущее значение конфликтует со значением, выбранным для сервера источника или другой реплики, его необходимо изменить. С использованием значения по умолчанию server_id равного 0, реплика отказывается подключаться к источнику.
Вы можете динамически изменить значение server_id, выполнив оператор, подобный этому:
SET GLOBAL server_id = 21;
Если ранее было установлено значение по умолчанию server_id равное 0, для инициализации реплики с новым ненулевым идентификатором сервера необходимо перезапустить сервер. В противном случае перезапуск сервера не требуется при изменении идентификатора сервера, если не вносятся другие изменения в конфигурацию, которые его требуют. Например, если ведение бинарного журнала было отключено на сервере, и вы хотите его включить для реплики, требуется перезапуск сервера для этого.
Если вы выключаете сервер реплики, вы можете отредактировать раздел [mysqld] файла конфигурации, чтобы указать уникальный идентификатор сервера. Например:
[mysqld]
server-id=21
Для репликации не требуется включение ведения бинарного журнала. Однако ведение бинарного журнала на реплике означает, что бинарный журнал реплики может использоваться для резервного копирования данных и восстановления после сбоя. Реплики, для которых включено ведение бинарного журнала, также могут использоваться в более сложной топологии репликации. Если вы хотите включить ведение бинарного журнала на реплике, используйте параметр log-bin в разделе [mysqld] файла конфигурации. Для включения ведения бинарного журнала на сервере, который его ранее не использовал, требуется перезагрузка сервера.
16.1.2.5.2 Настройка конфигурации источника на реплике
Для настройки реплики для связи с источником для репликации настройте реплику с необходимой информацией о подключении. Для этого выполните следующий оператор на реплике, заменив значения параметров на фактические значения, относящиеся к вашей системе:
mysql> CHANGE MASTER TO
-> MASTER_HOST='source_host_name',
-> MASTER_USER='replication_user_name',
-> MASTER_PASSWORD='replication_password',
-> MASTER_LOG_FILE='recorded_log_file_name',
-> MASTER_LOG_POS=recorded_log_position;
Репликация не может использовать файлы Unix-сокет. Вы должны иметь возможность подключения к серверу MySQL источника через TCP/IP.
У оператора CHANGE MASTER TO есть и другие параметры. Например, можно настроить безопасную репликацию с использованием SSL. Полный список параметров и информацию о максимальной допустимой длине строковых параметров см. в Разделе 13.4.2.1, «Оператор CHANGE MASTER TO».
Следующие шаги зависят от того, есть ли у вас существующие данные для импорта на реплику или нет. Подробнее см. в Разделе 16.1.2.4, «Выбор метода для создания снимков данных». Выберите один из следующих вариантов:
Если у вас нет снимка базы данных для импорта, см. Раздел 16.1.2.5.3, «Настройка репликации между новым источником и репликами».
Если у вас есть снимок базы данных для импорта, см. Раздел 16.1.2.5.4, «Настройка репликации с существующими данными».
16.1.2.5.3 Настройка репликации между новым источником и репликами
Если нет снимка предыдущей базы данных для импорта, настройте реплику на начало репликации с нового источника.
Для настройки репликации между источником и новой репликой:
Запустите реплику и подключитесь к ней.
Выполните оператор
CHANGE MASTER TOдля настройки конфигурации источника. См. Раздел 16.1.2.5.2, «Настройка конфигурации источника на реплике».
Выполните эти шаги настройки для каждой реплики.
Этот метод также можно использовать, если вы настраиваете новые серверы, но у вас есть существующий дамп баз данных с другого сервера, который вы хотите загрузить в вашу конфигурацию репликации. Загрузив данные в новый источник, данные автоматически будут реплицированы на реплики.
Если вы настраиваете новую среду репликации, используя данные с другого существующего сервера базы данных для создания нового источника, выполните файл дампа, сгенерированный с этого сервера, на новом источнике. Обновления базы данных автоматически распространяются на реплики:
$> mysql -h master < fulldb.dump
16.1.2.5.4 Настройка репликации с существующими данными
При настройке репликации с существующими данными сначала перенесите снимок данных со источника на реплику перед запуском репликации. Процесс импорта данных на реплику зависит от способа создания снимка данных на источнике.
Следуйте этой процедуре для настройки репликации с существующими данными:
-
Импортируйте данные на реплику, используя один из следующих методов:
-
Если вы использовали mysqldump, запустите сервер реплики, убедившись, что репликация не запускается, используя опцию
--skip-slave-start. Затем импортируйте файл дампа:$>
mysql < fulldb.dump -
Если вы создали снимок, используя файлы исходных данных, извлеките файлы данных в директорию данных вашей реплики. Например:
$>
tar xvf dbdump.tarВозможно, вам потребуется установить права доступа и владельца файлов, чтобы сервер реплики мог к ним обращаться и изменять их. Затем запустите сервер реплики, убедившись, что репликация не запускается, используя опцию
--skip-slave-start.
-
Настройте реплику с координатами репликации со стороны источника. Это указывает реплике на бинарный журнал и позицию внутри файла, с которой должна начаться репликация. Также настройте реплику с учетными данными входа и именем хоста источника. Для получения дополнительной информации о необходимой инструкции
CHANGE MASTER TO, см. Раздел 16.1.2.5.2, «Настройка конфигурации источника на реплике».-
Запустите потоки репликации:
mysql>
START SLAVE;
После выполнения этой процедуры реплика подключается к источнику и реплицирует все обновления, произошедшие на источнике с момента создания снимка.
Если переменная системы server_id для источника не настроена правильно, реплики не могут к нему подключиться. Аналогично, если вы не правильно настроили server_id для реплики, в журнале ошибок реплики появляется следующая ошибка:
Warning: You should set server-id to a non-0 value if master_host
is set; we will force server id to 2, but this MySQL server will
not act as a slave.
Также в журнале ошибок реплики вы найдете сообщения об ошибках, если репликация не выполняется по какой-либо другой причине.
Реплика хранит информацию об источнике, который вы настроили, в репозитории метаданных подключения. Репозиторий метаданных подключения может быть представлен в виде файлов или таблицы, в зависимости от значения, установленного для переменной системы master_info_repository. Когда реплика работает с master_info_repository=FILE, в директории данных хранятся два файла с именами master.info и relay-log.info. Если master_info_repository=TABLE, эта информация сохраняется в таблице master_slave_info в базе данных mysql. В любом случае не удаляйте и не редактируйте файлы или таблицу. Всегда используйте инструкцию CHANGE MASTER TO для изменения параметров репликации. Реплика может использовать значения, указанные в инструкции, для автоматического обновления файлов состояния. Дополнительная информация содержится в Разделе 16.2.4, «Журнал пересылки и репозитории метаданных репликации».
Содержимое репозитория метаданных подключения переопределяет некоторые параметры сервера, указанные в командной строке или в my.cnf. Подробнее см. Раздел 16.1.6, «Параметры и переменные репликации и двоичного протоколирования».
Один снимок источника достаточно для нескольких реплик. Для настройки дополнительных реплик используйте тот же снимок источника и следуйте процедуре репликации, описанной выше.
© 2025 Oracle
Licensed under the GPLv2 License.