25.7.5 Подготовка NDB кластера к репликации
Подготовка NDB кластера к репликации состоит из следующих шагов:
Проверьте совместимость версий всех серверов MySQL (см. Раздел 25.7.2, «Общие требования к репликации NDB кластера»).
-
Создайте учётную запись репликации на исходном кластере с соответствующими правами, используя следующие два SQL-запроса:
mysql
S>CREATE USER '->replica_user'@'replica_host'IDENTIFIED BY 'mysqlreplica_password';S>GRANT REPLICATION SLAVE ON *.*->TO 'replica_user'@'replica_host';В предыдущем запросе
replica_user— имя пользователя учётной записи репликации,replica_host— имя хоста или IP-адрес реплики, аreplica_password— пароль для этой учётной записи.Например, для создания учётной записи пользователя реплики с именем
myreplica, подключение с хостаreplica-hostи использованием пароля53cr37, используйте следующиеCREATE USERиGRANTзапросы:mysql
S>CREATE USER 'myreplica'@'replica-host'->IDENTIFIED BY '53cr37';mysqlS>GRANT REPLICATION SLAVE ON *.*->TO 'myreplica'@'replica-host';По соображениям безопасности рекомендуется использовать уникальную учётную запись, не используемую для других целей, для учётной записи репликации.
-
Настройте реплику для использования источника. Используя клиент mysql, это можно сделать с помощью запроса
CHANGE REPLICATION SOURCE TO:mysql
R>CHANGE REPLICATION SOURCE TO->SOURCE_HOST='->source_host',SOURCE_PORT=->source_port,SOURCE_USER='->replica_user',SOURCE_PASSWORD='replica_password';В предыдущем запросе
source_host— имя хоста или IP-адрес источника репликации,source_port— порт, который реплика должна использовать при подключении к источнику,replica_user— имя пользователя, настроенное для реплики на источнике, аreplica_password— пароль для этой учётной записи, заданный на предыдущем шаге.Например, чтобы указать реплике использовать сервер MySQL с именем хоста
rep-sourceи учётной записью репликации, созданной на предыдущем шаге, используйте следующий запрос:mysql
R>CHANGE REPLICATION SOURCE TO->SOURCE_HOST='rep-source',->SOURCE_PORT=3306,->SOURCE_USER='myreplica',->SOURCE_PASSWORD='53cr37';Полный список опций, которые можно использовать с этим запросом, см. в Разделе 15.4.2.2, «Запрос CHANGE REPLICATION SOURCE TO».
Для обеспечения возможности резервного копирования репликации, необходимо добавить опцию
--ndb-connectstringв файл конфигурации репликиmy.cnfперед запуском процесса репликации. Подробности см. в Разделе 25.7.9, «Резервные копии NDB кластера с репликацией NDB кластера».Дополнительные опции, которые можно настроить в
my.cnfдля реплик, см. в Разделе 19.1.6, «Параметры и переменные репликации и бинарного логирования». -
Если исходный кластер уже используется, можно создать резервную копию источника и загрузить её на реплику, чтобы сократить время, необходимое для синхронизации реплики с источником. Если реплика также работает с NDB кластером, это можно сделать, используя процедуру резервного копирования и восстановления, описанную в Разделе 25.7.9, «Резервные копии NDB кластера с репликацией NDB кластера».
ndb-connectstring=
management_host[:port]В случае, если вы не используете NDB кластер на реплике, вы можете создать резервную копию с помощью этой команды на источнике:
shell
S>mysqldump --source-data=1Затем импортируйте полученный дамп данных на реплику, скопировав файл дампа на неё. После этого вы можете использовать клиент mysql для импорта данных из файла дампа в базу данных реплики, как показано здесь, где
dump_file— имя файла, сгенерированного с помощью mysqldump на источнике, аdb_name— имя базы данных для репликации:shell
R>mysql -u root -pdb_name<dump_fileПолный список опций для использования с mysqldump см. в Разделе 6.5.4, «mysqldump — Программа резервного копирования баз данных».
ПримечаниеЕсли вы копируете данные на реплику таким образом, убедитесь, что вы остановили реплику от попытки подключения к источнику для начала репликации, прежде чем все данные будут загружены. Это можно сделать, запустив реплику с опцией
--skip-replica-start. После завершения загрузки данных, выполните дополнительные шаги, описанные в следующих двух разделах. -
Убедитесь, что каждому серверу MySQL, выступающему в качестве источника репликации, присвоен уникальный идентификатор сервера и включено двоичное логирование в формате на основе строк. (См. Раздел 19.2.1, «Форматы репликации»). Кроме того, настоятельно рекомендуется включить системную переменную
replica_allow_batching(значение по умолчанию).Используйте
--ndb-replica-batch-sizeдля установки размера пакета для записи на реплике вместо--ndb-batch-size, и--ndb-replica-blob-write-batch-bytesвместо--ndb-blob-write-batch-bytesдля определения размера пакета, используемого приложением репликации для записи данных BLOB. Все эти опции могут быть настроены либо в файле конфигурацииmy.cnfсервера-источника, либо в командной строке при запуске процесса mysqld-источника. Дополнительную информацию см. в Разделе 25.7.6, «Запуск репликации NDB кластера (один канал репликации)».
© 2025 Oracle
Licensed under the GPLv2 License.