Spec-Zone.ru › MySQL 9.2

25.7.5 Подготовка NDB кластера к репликации

Подготовка NDB кластера к репликации состоит из следующих шагов:

  1. Проверьте совместимость версий всех серверов MySQL (см. Раздел 25.7.2, «Общие требования к репликации NDB кластера»).

  2. Создайте учётную запись репликации на исходном кластере с соответствующими правами, используя следующие два SQL-запроса:

    mysqlS> CREATE USER 'replica_user'@'replica_host'
         -> IDENTIFIED BY 'replica_password';
    
    mysqlS> GRANT REPLICATION SLAVE ON *.*
         -> TO 'replica_user'@'replica_host';
    

    В предыдущем запросе replica_user — имя пользователя учётной записи репликации, replica_host — имя хоста или IP-адрес реплики, а replica_password — пароль для этой учётной записи.

    Например, для создания учётной записи пользователя реплики с именем myreplica, подключение с хоста replica-host и использованием пароля 53cr37, используйте следующие CREATE USER и GRANT запросы:

    mysqlS> CREATE USER 'myreplica'@'replica-host'
         -> IDENTIFIED BY '53cr37';
    
    mysqlS> GRANT REPLICATION SLAVE ON *.*
         -> TO 'myreplica'@'replica-host';
    

    По соображениям безопасности рекомендуется использовать уникальную учётную запись, не используемую для других целей, для учётной записи репликации.

  3. Настройте реплику для использования источника. Используя клиент mysql, это можно сделать с помощью запроса CHANGE REPLICATION SOURCE TO:

    mysqlR> 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 и учётной записью репликации, созданной на предыдущем шаге, используйте следующий запрос:

    mysqlR> 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, «Параметры и переменные репликации и бинарного логирования».

  4. Если исходный кластер уже используется, можно создать резервную копию источника и загрузить её на реплику, чтобы сократить время, необходимое для синхронизации реплики с источником. Если реплика также работает с NDB кластером, это можно сделать, используя процедуру резервного копирования и восстановления, описанную в Разделе 25.7.9, «Резервные копии NDB кластера с репликацией NDB кластера».

    ndb-connectstring=management_host[:port]
    

    В случае, если вы не используете NDB кластер на реплике, вы можете создать резервную копию с помощью этой команды на источнике:

    shellS> mysqldump --source-data=1
    

    Затем импортируйте полученный дамп данных на реплику, скопировав файл дампа на неё. После этого вы можете использовать клиент mysql для импорта данных из файла дампа в базу данных реплики, как показано здесь, где dump_file — имя файла, сгенерированного с помощью mysqldump на источнике, а db_name — имя базы данных для репликации:

    shellR> mysql -u root -p db_name < dump_file
    

    Полный список опций для использования с mysqldump см. в Разделе 6.5.4, «mysqldump — Программа резервного копирования баз данных».

    Примечание

    Если вы копируете данные на реплику таким образом, убедитесь, что вы остановили реплику от попытки подключения к источнику для начала репликации, прежде чем все данные будут загружены. Это можно сделать, запустив реплику с опцией --skip-replica-start. После завершения загрузки данных, выполните дополнительные шаги, описанные в следующих двух разделах.

  5. Убедитесь, что каждому серверу 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.
https://docs.oracle.com/cd/E17952_01/mysql-8.4-en/mysql-cluster-replication-preparation.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API